按模块写,就不容易写错了
#include <iostream>
using namespace std;
int n1, n2;
bool f1 = true, f2 = true, f3 = true, f4 = true;
int main() {
string a, b;
cin >> a;
getchar();
getline(cin, b); //b中可能包含空格,所以用getline进行输入
for (int i = 0; i < a.size(); i++) {
if (a[i] >= '0' && a[i] <= '9') {
n1 = 10 * n1 + (a[i] - '0');
} else {
f1 = false;
break;
}
}
for (int i = 0; i < b.size(); i++) {
if (b[i] >= '0' && b[i] <= '9') {
n2 = 10 * n2 + (b[i] - '0');
} else {
f2 = false;
break;
}
}
if (n1 > 1000 || n1 < 1)
f3 = false;
if (n2 > 1000 || n2 < 1)
f4 = false;
if (f1 && f3)
cout << n1 << " + ";
else
cout << "?" << " + ";
if (f2 && f4)
cout << n2 << " = ";
else
cout << "?" << " = ";
if (f1 && f2 && f3 && f4)
cout << n1 + n2;
else
cout << "?";
return 0;
}