RE求助,本地没问题

P1957 口算练习题

林震安 @ 2022-10-09 18:17:14

#include<bits/stdc++.h>
using namespace std;
int n,dq=1;
char x[1000];
void work()
{
    int num1=0,num2=0;
    cin.getline(x,1000);
    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;//*
        if(x[0]=='d')
            dq=4;///
    }
    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;//*
        if(x[0]=='d')
            dq=4;///
    }
    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;
    }
    if(dq==4)
    {
        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();
}

|