90分大佬们求助啊

P1957 口算练习题

xibaohe @ 2022-10-03 22:17:24

90分

问题:

开头是一位数字怎么办?

求改

万分感谢
#include<bits/stdc++.h>
using namespace std;
int n;
int main(){
    cin>>n;
    for(int q=1;q<=n;q++)
    {
        int x,y,z,t,d1=0,d2=0,d3=0,tel=1;
        char f,w,a;
        string s;
        cin>>w;
        if(w=='0')
        {
            x=0;
        }
        else
        cin>>x;
        cin>>y;
        t=x;
        while(abs(t)>0)
        {
            tel*=10;
            t/=10;
        }
        if(w=='a'||w=='b'||w=='c')
        f=w;
        else
        if(w=='-')
        x*=-1;
        else
        x+=tel*(w-48);

        if(f=='a')
        {
            z=x+y;
            a='+';
        }
        if(f=='b')
        {
            z=x-y;
            a='-';
        }
        if(f=='c')
        {
            z=x*y;
            a='*';
        }
        cout<<x<<a<<y<<"="<<z<<endl;
        if(x<0) d1++;
        if(x==0) d1=1;
        while(abs(x)>0)
        {
            d1++;
            x/=10;
        }
        if(y<0) d2++;
        if(y==0) d2=1;
        while(abs(y)>0)
        {
            d2++;
            y/=10;
        }
        if(z<0) d3++;
        if(z==0) d3=1;
        while(abs(z)>0)
        {
            d3++;
            z/=10;
        }
        cout<<d1+d2+d3+2<<endl;
    }
    return 0;
}

|