RE求助

P1957 口算练习题

林震安 @ 2022-11-04 17:51:07

#include<bits/stdc++.h>
using namespace std;
int n,dq=1;
char x[10010];
void work()
{
    int num1=0,num2=0;
    cin.getline(x,9999);
    if(x[0]>'9'||x[0]<'0')
    {
        int j=2;
        while(x[j]>'9'||x[j]<'0')
        j++;
        while(x[j]>='0'&&x[j]<='9')
        {
            num1=num1*10+(x[j]-'0');
            j++;
        }
        while(x[j]>'9'||x[j]<'0')
        j++;
        while(x[j]>='0'&&x[j]<='9'&&j<strlen(x))
        {
            num2=num2*10+(x[j]-'0');
            j++;
        }
        if(x[0]=='a')
            dq=1;//+
        if(x[0]=='b')
            dq=2;//-
        if(x[0]=='c')
            dq=3;//*
    }
    else
    {
        int j=0;
        while(x[j]>='0'&&x[j]<='9')
        {
            num1=num1*10+(x[j]-'0');
            j++;
        }
        j++;
        while(x[j]>'9'||x[j]<'0')
            j++;
        while(x[j]>='0'&&x[j]<='9'&&j<strlen(x))
        {
            num2=num2*10+(x[j]-'0');
            j++;
        }
        if(x[0]=='a')
            dq=1;//+
        if(x[0]=='b')
            dq=2;//-
        if(x[0]=='c')
            dq=3;//*
    }
    char k;
    int ans;
    if(dq==1)
    {
        k='+';
        ans=num1+num2;
    }
    if(dq==2)
    {
        k='-';
        ans=num1-num2;
    }
    if(dq==3)
    {
        k='*';
        ans=num1*num2;
    }
    printf("%d%c%d=%d\n",num1,k,num2,ans);
    int ans2=0;
    while(num1>0)
    {
        num1/=10;
        ans2++;
    }
    while(num2>0)
    {
        num2/=10;
        ans2++;
    }
    if(ans<0)
    {
        ans=-ans;
        ans2++;
    }
    while(ans>0)
    {
        ans/=10;
        ans2++;
    }
    printf("%d\n",ans2+2);
}
int main()
{
    scanf("%d",&n);
    getchar();
    while(n--)
        work();
}

本地没问题但是交了RE这是为什么


by Xy_top @ 2022-11-04 18:14:27

@林震安 为什么要用字符串做啊,直接cin >> c >> a >> b就行了啊


by 林震安 @ 2022-11-04 18:17:53

就是为了练练嘛@stdios


by 林震安 @ 2022-11-04 18:18:24

手动增加难度


by Xy_top @ 2022-11-04 18:28:47

@林震安

cin.getline(x,9999);

感觉这句怪怪的


by 林震安 @ 2022-11-04 18:29:43

我也觉得@stdios


by SEAN2022NAES @ 2022-12-04 11:53:47

你这个要调试啊, 多写一点注释答案就出来了, 自己写注释,写着写着答案就暴露出来了


|