LiLi_ @ 2023-01-07 15:12:48
#include <iostream>
#include <string>
#include <math.h>
#include <sstream>
using namespace std;
int calculate(int a,int b,int flag){
if(flag==1)
return a+b;
else if(flag==2)
return a-b;
else
return a*b;
}
int main()
{
int n,i,flag,index1,index2,x=0,y=0,z,sum;
cin>>n;
cin.ignore();
string s,s1,s2,s3;
while(n--){
getline(cin,s);
if(s[0]=='a')
flag=1;
else if(s[0]=='b')
flag=2;
else if(s[0]=='c')
flag=3;
for(i=0;i<s.size();i++){
if(s[i]>='0'&&s[i]<='9'){
index1=i;
break;
}
}
for(i=index1+1;i<s.size();i++){
if(s[i]==' '){
index2=i-1;
break;
}
}
s1=s.substr(index1,index2-index1+1);
s2=s.substr(index2+2,s.size()-index2-2);
x=stoi(s1);
y=stoi(s2);
z=calculate(x,y,flag);
if(flag==1)
cout<<x<<'+'<<y<<'='<<z<<endl;
else if(flag==2)
cout<<x<<'-'<<y<<'='<<z<<endl;
else
cout<<x<<'*'<<y<<'='<<z<<endl;
s3=to_string(z);
sum=s1.size()+s2.size()+s3.size();
cout<<sum+2<<endl;
}
return 0;
}
by mooktian @ 2023-01-08 20:54:56
我开始也是用getline,测试都没问题,就是一提交就0分, 只能输入部分重写,样例里a 64 46,可以把α输入到字符串,判断下,后面输入两个int,275 125,第一个275也是输入到字符串,用atoi或stoi转成int,后面再输一个int, 这题输入的处理是难点。
by LiLi_ @ 2023-01-10 12:47:18
@mooktian 好的好的,谢谢大佬!!!