求助大佬!附上代码及错误数据一份orz

P1957 口算练习题

Z2168968516 @ 2022-08-25 21:13:05

错误原因,输入五十个数据输入不全

#include <functional>
#include<iostream>
#include<algorithm>
#include <sstream>
#include <string>
using namespace std;
int main()
{
    stringstream ss;//string->int
    int i;
    string arr[10];
    string cs1,cs2;
    int num1=0,num2=0,sum,cs3;
    cin>>i;
    arr[5]="=";
    for(int xs=0;xs<i;xs++)//循环次数
    {
        sum=0;
        cin>>cs1;
        if(cs1>="a"&&cs1<="c")//如果是abc,输入进arr[0],直到被下一个abc顶替
        {
            if(cs1=="a")
            {
                arr[0]="+";
            }
            else if(cs1=="b")
            {
                arr[0]="-";
            }
            else if(cs1=="c")
            {
                arr[0]="*";
            }
                cin>>num1>>num2;//输入两个数字,运算后将三者转为string类型存入数组中1 2 6位置
                if(arr[0]=="+")
                    sum=num1+num2;
                else if(arr[0]=="-")
                    sum=num1-num2;
                else if(arr[0]=="*")
                    sum=num1*num2;
                arr[1]=to_string(num1);
                arr[2]=to_string(num2);
            arr[6]=to_string(sum);
            cs2=arr[1]+arr[0]+arr[2]+arr[5]+arr[6];//字符串拼接
            cout<<cs2<<endl<<cs2.length()<<endl;//输出整串和长度,下面else if中与此处相同
        }
        else if(cs1!="a"&&cs1!="b"&&cs1!="c")//如果是数字,直接输入,运算,转string存数组1 2 6
        {
            arr[1]=cs1;
            ss<<cs1;
            ss>>num1;
            cin>>num2;
            if(arr[0]=="+")
                sum=num1+num2;
            else if(arr[0]=="-")
                sum=num1-num2;
            else if(arr[0]=="*")
                sum=num1*num2;
            arr[1]=to_string(num1);
            arr[2]=to_string(num2);
            arr[6]=to_string(sum);
            cs2=arr[1]+arr[0]+arr[2]+arr[5]+arr[6];
            cout<<cs2<<endl<<cs2.length()<<endl;
        }
        ss.str("");
        sum=0;
    }
    return 0;
}

错误输入

50
c 2620 6343
a 216 1149
b 7761 5655
7168 3961
a 9755 3461
9303 1617
2644 274
c 5959 5822
727 2106
8801 6103
1074 7558
c 5311 3362
9831 8685
8323 7534
b 2274 3201
6879 1691
b 4615 5358
7179 5712
5079 7186
2942 1540
a 7365 5932
6106 4150
6029 3705
a 7933 3773
1744 9199
3392 7815
407 7594
5261 5569
7124 4780
a 6210 6762
2655 3559
c 9982 8521
6779 7285
3922 406
b 5968 5627
c 4878 831
2946 7129
4251 1035
7269 6391
c 7681 1516
a 3246 2563
8045 3370
5908 8263
c 9022 6608
b 3980 1593
1904 3328
b 7330 7777
a 8796 8261
8602 274
3869 7732

错误输出

2620*6343=16618660
18
216+1149=1365
13
7761-5655=2106
14
7168-3961=3207
14
9755+3461=13216
15
9303+1617=10920
15
2644+274=2918
13
5959*5822=34693298
18
727*2106=1531062
16
8801*6103=53712503
18
1074*7558=8117292
17
5311*3362=17855582
18
9831*8685=85382235
18
8323*7534=62705482
18
2274-3201=-927
14
6879-1691=5188
14
4615-5358=-743
14
7179-5712=1467
14
5079-7186=-2107
15
2942-1540=1402
14
7365+5932=13297
15
6106+4150=10256
15
6029+3705=9734
14
7933+3773=11706
15
1744+9199=10943
15
3392+7815=11207
15
407+7594=8001
13
5261+5569=10830
15
7124+4780=11904
15
6210+6762=12972
15
2655+3559=6214
14
9982*8521=85056622
18
6779*7285=49385015
18
3922*406=1592332
16
5968-5627=341
13
4878*831=4053618
16
2946*7129=21002034
18
4251*1035=4399785
17
7269*6391=46456179
18
7681*1516=11644396
18
3246+2563=5809
14
8045+3370=11415
15
5908+8263=14171
15
9022*6608=59617376
18
3980-1593=2387
14
1904-3328=-1424
15
7330-7777=-447
14
8796+8261=17057
15
8602+274=8876
13
3869+7732=11601
15

|