问题标题: 酷町堂:计算超人(superman)

0
0
已解决
郭梓强
郭梓强
初级光能
初级光能

我为嘛错???

#include <iostream>
#include <cstdio>
#include <cmath>
#include <iomanip>
#include <algorithm>
#include <cstring>
#include <string>
using namespace std;
int n,t;
string s;
int num(string s){
    int ans=0;
    for(int i=0;i<s.size();i++){
        ans=ans*10+(s[i]-48);
    }
    return ans;

int c(int a,int b,char f){
     if(f=='+') return a+b;
     if(f=='-') return a-b;
     if(f=='*') return a*b;
}
int wei(int n){
     int sum=0;
     while(n!=0){
         sum++;
         n/=10;
    }
    return sum;
}
int main(){
    freopen("superman.in","r",stdin);
    freopen("superman.out","w",stdout);
    cin>>n;
    getline(cin,s);
    for(int i=1;i<=n;i++){
        char t;
        string b[3];
        int k=0;
        for(int j=0;j<s.size();j++){
            if(s[j]>='0'&&s[j]<='9')
                b[k]+=s[j];
                if(s[j]==' ')
                k++;
        }
        if(!(s[0]>='0'&&s[0]<='9'))
        {
            cout<<b[1]<<s[0]<<b[2]<<"="<<c(num(b[1]),num(b[2]),s[0])<<endl;
            cout<<wei(num(b[1]))+2+wei(num(b[2]))+wei(c(num(b[1]),num(b[2]),s[0]))<<"\n";
            t=s[0];
        }
        else
        {
            cout<<b[0]<<t<<b[1]<<"="<<c(num(b[0]),num(b[1]),t)<<endl;
            cout<<wei(num(b[0]))+2+wei(num(b[1]))+wei(c(num(b[0]),num(b[1]),t))<<"\n";
    }
    }
    fclose(stdin);
    fclose(stdout);
    return 0;
}


0
已采纳
武奕楷
武奕楷
新手天翼
新手天翼

考试题你都问!

0
郭梓强
郭梓强
初级光能
初级光能

。。。。。。。。我订正。。。。。。。。

0
郭梓强
郭梓强
初级光能
初级光能

求思路或代码(代码更直观)

我要回答