提交都是WA,可本地运行没有问题,帮忙指点一下

P1957 口算练习题

末尾有' '
by _8008008 @ 2023-01-07 09:02:47


我也是一样的,样例没问题,看测试数据也对,就是0分。 ```cpp #include<bits/stdc++.h> using namespace std; int a,b,c,na,nb,nc;//a,b是要运算的数,c是运算后的结果 //na是a的位数,nb,nc是b和c的位数 int nbits(int n) { int ans; if(n<0) ans=1; else ans=0; while(n) { n/=10; ans++; } return ans; } int main(){ string s; char ch; int p,q;//要运算的数从字符串的p位置开始,q位置结束 int n; cin>>n; cin.get(); for(int i=1;i<=n;i++) { getline(cin,s); if(s[0]=='a'||s[0]=='b'||s[0]=='c') {ch=s[0];p=2;} else p=0; if(ch=='a') ch='+'; if(ch=='b') ch='-'; if(ch=='c') ch='*'; int j=p;//读取a,第一个运算的数 while(s[j]!=' ') j++; q=j; na=q-p;//数字a的位数 for(int k=p;k<q;k++) a+=(s[k]-'0')*pow(10,q-k-1); p=q+1;//读取b,第二个运算的数 q=s.size(); nb=q-p; for(int k=p;k<q;k++) b+=(s[k]-'0')*pow(10,q-k-1); switch(ch) {//计算 case '+': c=a+b; break; case '-': c=a-b; break; case '*': c=a*b; break; } nc=nbits(c); cout<<a<<ch<<b<<'='<<c<<endl<<na+nb+nc+2; a=0;b=0;c=0; } } ```
by mooktian @ 2023-01-08 16:21:14


@[kkhll](/user/604432) 输入方式调整下。
by mooktian @ 2023-01-08 21:00:27


|