pengqiushi @ 2022-08-02 17:44:08
代码如下:
#include<iostream>
#include<cstring>
using namespace std;
char t[15];
void qkt(){
for(int i=1; i<=10; i++)
t[i]=0;
return;
}
int cmp(int a,int b,char f){
if(f=='a')
return a+b;
if(f=='b')
return a-b;
return a*b;
}
char scf(char f){
if(f=='a')
return '+';
if(f=='b')
return '-';
return '*';
}
int main()
{
int a=0,b=0,n,l=0,cnt=1,z=0;
char f;
cin>>n;
for(int i=1; i<=n; i++){
scanf("%s",t);
l+=strlen(t);
if(t[0]<'0'||t[0]>'9'){
f=t[0];
qkt();
scanf("%s",t);
l+=strlen(t);
for(int i=strlen(t)-1; i>=0; i--){
z=t[strlen(t)-i-1]-48;
a+=z;
}
qkt();
scanf("%s",t);
l+=strlen(t);
for(int i=strlen(t)-1; i>=0; i--){
z=t[strlen(t)-i-1]-48;
b+=z;
}
}
else{
qkt();
scanf("%s",t);
l+=strlen(t);
for(int i=strlen(t)-1; i>=0; i--){
z=t[strlen(t)-i-1]-48;
b+=z;
}
}
int sum=cmp(a,b,f);
printf("%d%c%d=%d\n%d",a,scf(f),b,sum,l);
cout<<endl;
}
return 0;
}
运行结果如下:
by _cyle_King @ 2022-08-02 19:43:06
@pengqiushi 调好了,下面的代码可以 AC。
#include<iostream>
#include<cstring>
using namespace std;
char t[15];
void qkt(){
for(int i=1; i<=10; i++)
t[i]=0;
return;
}
int cmp(int a,int b,char f){
if(f=='a')
return a+b;
if(f=='b')
return a-b;
return a*b;
}
char scf(char f){
if(f=='a')
return '+';
if(f=='b')
return '-';
return '*';
}
inline int
glen(int x){
int len=x<0;
do len++,x/=10;while(x);
return len;
}
int main()
{
int a=0,b=0,n,l=0,cnt=1,z=0;
char f;
cin>>n;
for(int i=1; i<=n; i++){
scanf("%s",t);
if(t[0]<'0'||t[0]>'9'){
f=t[0];
scanf("%d%d",&a,&b);
l=glen(a)+glen(b);
}
else{
int len=strlen(t);a=0;l=len;
for(int i=0;i<len;i++)
a=a*10+t[i]-'0';
scanf("%d",&b);
l+=glen(b);
}
int sum=cmp(a,b,f);l+=glen(sum);
printf("%d%c%d=%d\n%d",a,scf(f),b,sum,l+2);
cout<<endl;
}
return 0;
}
by pengqiushi @ 2022-08-02 21:23:56
@_cyle_King 收到,非常感谢。
by pengqiushi @ 2022-08-02 21:33:32
终于AC了,这道题从很早以前就开始坐,到现在才AC。