30pts 求调
查看原帖
30pts 求调
1213337
zyw2010楼主2024/10/21 20:08
#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;
}

样例都过了 其他帖也看了 还是找不到问题 评测记录 求调 谢谢

2024/10/21 20:08
加载中...