#include<bits/stdc++.h>
using namespace std;
inline bool isdigit(char ch) {
return ch >= '0' && ch <= '9';
}
int main() {
char ch;
bool f1 = 0, f2 = 0; //f1记录这行是否有数字 f2记录上个字符是否为数字
int m = 1;
long long res = 0, num = 0;
while ((ch = getchar()) != EOF) {
if (ch == '\n') { //换行
if (f1) {
cout << res + num*m << endl; //输出结果
num = res = 0;
f1 = f2 = 0;
}
m = 1;
continue;
}
if (isdigit(ch)) { //数字
num = num * 10 + ch - '0';
f1 = f2 = 1;
} else {
if (ch == '-') {
if (f2) { //上个字符是数字 那此减号就是隔断符
res += num * m;
num = 0;
f2 = 0;
m = 1;
continue;
}
m = -1;
} else { //其他字符
f2 = 0;
res += num * m;
m = 1;
num = 0;
}
}
}
return 0;
}
样例都过了 其他帖也看了 还是找不到问题 评测记录 求调 谢谢