全wa,求大佬解答
查看原帖
全wa,求大佬解答
1154492
PleasantGoat17楼主2024/3/13 20:09
#include<iostream>
using namespace std;

int toNum(string s)
{
    int num=0,level=10;
    for(int i=s.length()-1;i>=0;i--)
    {
        if(i==s.length()-1){
            num+=(s[i]-'0');
        }
        else{
            num+=(s[i]-'0')*level;
            level*=10;
        }
    }
    return num;
}

string toString(int num){
    string res;
    int i = num;
    if(num<0){
        i=abs(num);
    }
    while(i>0){
        res =  (char)(i%10+'0') + res;
        i/=10;
    }
    if(num<0){
        res = '-' +res;
    }
    return res;
}

int main()
{
    int i;
    cin >> i;
    getchar();
    string s[50];
    for(int k=0;k<i;k++)
    {
        getline(cin,s[k],'\n');
    }
    char optr;
    for(int k=0;k<i;k++)
    {
        int j = 0;
        switch (s[k][j])
        {
        case 'a':
            optr = '+';
            j+=2;
            break;
        case 'b':
            optr = '-';
            j+=2;
            break;
        case 'c':
            optr = '*';
            j+=2;
            break;
        case 'd':
            optr = '/';
            j+=2;
            break;
        default:
            break;
        }

        int num1,num2;
        string s1,s2;
        for(;;j++){
            if(s[k][j] == ' ')break;
            s1 = s1 + s[k][j];  
        }
        num1 = toNum(s1);
        // cout << "s1=" << s1 << endl;
        // cout << "num1=" << num1 << endl;
        for(j++;j<s[k].length();j++){
            if(s[k][j] == ' ')break;
            s2 = s2 + s[k][j];
        }
        num2 = toNum(s2);
        // cout <<"s2=" << s2 << endl;
        // cout <<"num2=" << num2 << endl;

        int result;
        switch (optr)
        {
        case '+':
            result = num1+num2;
            
            break;
        case '-':
            result = num1-num2;
            break;
        case '*':
            result = num1*num2;
            break;
        case '/':
            result = num1/num2;
            break;
        
        default:
            break;
        }
        // cout << "result="<<result << endl;
        string ans = "";
        ans = s1 + optr + s2 + "=" + toString(result);
        cout << ans << endl;
        cout << ans.length()<<endl;
    }
    return 0;

}

全WA求救

2024/3/13 20:09
加载中...