求助,样例能过,提交全WA!

P1957 口算练习题

Elairin176 @ 2022-08-14 11:29:19

代码:

#include <iostream>
#include <cctype>
using namespace std;
int n,y,a,b,ai,bi,i=0;;
char c;
bool d=false;
int main(void){
    cin>>n;
    cin.ignore();
    while(~(c=(char)cin.get())){
        //cout<<(int)c<<endl;
        if(c==10){
            i++;
            d=false;
            int cc;
            if(y=='+'){
                cout<<a<<"+"<<b<<"="<<a+b<<endl;
                cc=a+b;
            }
            if(y=='-'){
                cout<<a<<"-"<<b<<"="<<a-b<<endl;
                cc=a-b;
            }
            if(y=='*'){
                cout<<a<<"*"<<b<<"="<<a*b<<endl;
                cc=a*b;
            }
            int cci=0;
            if(cc<=0) cci++; 
            while(cc!=0){
                cci++;
                cc/=10;
            }
            cout<<ai+bi+2+cci<<endl;
            a=0;
            b=0;
            ai=0;
            bi=0;
            if(i>=n) break;
        }else{
            if(c=='a') y='+';
            else if(c=='b') y='-';
            else if(c=='c') y='*';
            else if(isdigit(c)){
                if(!d){
                    a*=10;
                    a+=c-'0';
                    ai++;
                }else{
                    b*=10;
                    b+=c-'0';
                    bi++;
                }
            }else if(c==' '){
                if(a) d=true;
            }
        }
    }
} 

by dengyujie2020 @ 2022-08-14 11:41:55

样例能过?


by dengyujie2020 @ 2022-08-14 11:43:31

楼主可以解释一下代码吗?你的程序好像就是最后一个测试点没输出来


by dengyujie2020 @ 2022-08-14 11:45:58

哦,你这个输入有问题,必须要最后输入换行才行。所以文件输入就不行WA了


by Elairin176 @ 2022-08-14 19:18:51

@dengyujie2020 嗯嗯


|