@[xsj4zyc](/user/778772) 发了题目
by xiangzhenze611 @ 2024-02-21 20:35:47
```
#include<iostream>
#include<string>
using namespace std;
string s;
int n, h, a, b, sum,del ,ret;
int main() {
scanf("%d", &n);
for (int i = 0; i < n; i++) {
cin >> s;
a = 0;
b = 0;
sum = 0;
if (s[0] >= 'a' && s[0] <= 'z') {
if (s[0] == 'a')h = 1;
if (s[0] == 'b')h = 2;
if (s[0] == 'c')h = 3;
del = 1;
}
if(del)cin >> s;
for (int i = 0;; i++) {
if (s[i] < '0' || s[i]>'9')break;
a = a * 10 + (s[i] - '0');
sum++;
}
cin >> s;
for (int i = 0;; i++) {
if (s[i] < '0' || s[i]>'9')break;
b = b * 10 + (s[i] - '0');
sum++;
}
if (h == 1)printf("%d+%d=%d", a, b, ret=a + b);
if (h == 2)printf("%d-%d=%d", a, b, ret=a - b);
if (h == 3)printf("%d*%d=%d", a, b, ret=a * b);
if (ret <= 0)sum++;
while (ret) {
ret /= 10;
sum++;
}
printf("\n%d\n", sum + 2);
del = 0;
}
return 0;
}
```
by jiejieya @ 2024-02-21 20:42:18
# 几个错误的地方
- ###### 1.输入的错误,输入cin>>s的时候不是输入一整行
- ###### 2.判断s是否完毕
```
for (int i = 0;; i++) {
if (s[i] < '0' || s[i]>'9')break;
a = a * 10 + (s[i] - '0');
sum++;
}
```
- ###### 如果break放在在后面你把空格是不是也会算到a里面
- ###### 3.长度计算错误,结果长度没有计算,答案是负数的情况多的一个减号没有计算
by jiejieya @ 2024-02-21 20:46:02