本地运行没有问题,但是洛谷一个点都过不了...

P1957 口算练习题

sleeping_Mr_Z @ 2024-03-07 21:18:16

#include <iostream>
#include <sstream>
#include <string.h>
using namespace std;
enum fu1{jia,jian,cheng};
fu1 fu;
int f(int x){
    int sum=0;
    if(x<0)
    sum++;
    while(x){
        sum++;
        x/=10;
    }
    return sum;
}
int main(){
    int n,x,y;
    cin>>n;
    getchar();
    string a;
    char temp;
    for(int i=0;i<n;i++){
        getline(cin,a);
        istringstream in(a);
        if(a[0]>='a'&&a[0]<='c'){
            if(a[0]=='a')
            fu=jia;
            else if(a[0]=='b')
            fu=jian;
            else if(a[0]=='c')
            fu=cheng;
            in>>temp;
        }
        in>>x>>y;
        if(fu==jia){
            cout<<x<<'+'<<y<<'='<<x+y<<'\n'<<f(x)+f(y)+f(x+y)+2<<'\n';
        }
        else if(fu==jian){
            cout<<x<<'-'<<y<<'='<<x-y<<'\n'<<f(x)+f(y)+f(x-y)+2<<'\n';
        }
        else if(fu==cheng){
            cout<<x<<'*'<<y<<'='<<x*y<<'\n'<<f(x)+f(y)+f(x*y)+2<<'\n';
        }
    }
}

//不知道为什么就是不对,用样例和第一组数据(一个点都没对所以只能试第一组数据)跑是没问题 //第一次用字符串流不太会 //求大佬帮忙


by sleeping_Mr_Z @ 2024-03-07 21:19:46

全部是WA,有数字不对的也有符号不对的


by YuYuanPQ @ 2024-03-07 21:21:46

in>>x>>y;

???

@3100034184a


by sleeping_Mr_Z @ 2024-03-07 21:24:03

@lizhaoyuan_2010 应该是这里 istringstream in(a);


by YuYuanPQ @ 2024-03-07 21:24:56

@3100034184a 哦,没看见


by sleeping_Mr_Z @ 2024-03-07 21:25:49

@lizhaoyuan_2010 因为我看书上是这样的 也是第一次写字符串流 可能搞错了什么


|