```cpp
#include<bits/stdc++.h>
using namespace std;
long long n,x,y,s1,s2,s3,k1,k2,s4,s5,k3,s6,s7;
string s;
int main(){
cin>>n;
getline(cin,s);
for(int i=1;i<=n;i++)
{
getline(cin,s);
if(s[0]=='a')s1=1;
else if(s[0]=='b')s1=2;
else if(s[0]=='c')s1=3;
for(int i=0;i<s.size();i++)
{
if(s[i]>='0'&&s[i]<='9')
{
s2=s2*10+(s[i]-'0');
}
else if(s[i]==' ')
{
x=s2;
s4=x;
s2=0;
}
}
y=s2;
s5=y;
s2=0;
if(x==0)k1++;
for(;x>0;x=x/10)k1++;
if(y==0)k2++;
for(;y>0;y=y/10)k2++;
if(s1==1)
{
s3=s4+s5;
s6=s3;
cout<<s4<<"+"<<s5<<"="<<s4+s5;
s7+=2;
}
if(s1==2)
{
s3=s4-s5;
if(s3<0)
{
s3=abs(s3);
s7+=1;
}
s6=s3;
cout<<s4<<"-"<<s5<<"="<<s4-s5;
s7+=2;
}
if(s1==3)
{
s3=s4*s5;
s6=s3;
cout<<s4<<"*"<<s5<<"="<<s4*s5;
s7+=2;
}
if(s3==0)k3++;
for(;s6>0;s6=s6/10)k3++;
cout<<endl<<s7+k1+k2+k3;
cout<<endl;
k1=k2=k3=s2=s3=s4=s5=s6=s7=0;
}
return 0;
}
```
可以试试这样写
by james2333 @ 2024-03-14 13:43:58
@[99wwww](/user/839309) 行数更少
```cpp
#include <bits/stdc++.h>
using namespace std;
int n,a,b,c,o,l;
string s;
int main(){
cin>>n;getline(cin,s);
while(n--){
getline(cin,s);
stringstream ss<<s;
if('a'<=s[0]&&s[0]<='z'){
switch(s[0]){
case 'a':o=1;break;
case 'b':o=2;break;
case 'c':o=3;break;
}char t;ss>>t;
}
ss>>a;ss>>b;
if(o==1){
c=a+b;string p;
p=to_string(a)+'+'+to_string(b)+'='+to_string(c);
cout<<p<<'\n'<<p.size()<<'\n';
}else if(o==2){
c=a-b;string p;
p=to_string(a)+'-'+to_string(b)+'='+to_string(c);
cout<<p<<'\n'<<p.size()<<'\n';
}else if(o==3){
c=a*b;string p;
p=to_string(a)+'*'+to_string(b)+'='+to_string(c);
cout<<p<<'\n'<<p.size()<<'\n';
}
}
return 0;
}
```
by mlemtion @ 2024-03-14 13:46:29
@[mlemtion](/user/946696) @[james2333](/user/363062) 屑屑
by 99wwww @ 2024-03-15 13:01:16
不要用
```cpp
getline(cin,s);
可以用先输入,如果不是a~c
再转成int
by cpp_xhq @ 2024-03-16 09:25:08
@[cpp_xhq](/user/1233382) 豪德
by 99wwww @ 2024-03-18 12:52:23