鬼知道我加了多少特判
查看原帖
鬼知道我加了多少特判
247992
_Cloud_楼主2020/11/3 22:53
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	int x = 0, f = 1, number = 0, now = 0;
	char c = getchar(), anx;
	while (true) {
		if (c >= '0' && c <= '9') now = now * 10 + c - '0';
		else {
			if (c == '-') { number += now * f; now = 0; f = -1; }
			if (c >= 'a' && c <= 'z') { x += (now == 0 ? 1 : now) * f; now = 0; f = 1; anx = c;}//特判1 
			if (c == '+') { number += now * f; f = 1; now = 0; }
			if (c == '=') { number += now * f; f = 1; now = 0; break; }
		}
		c = getchar();
	}
	while (cin >> c) {
		if (c >= '0' && c <= '9') now = now * 10 + c - '0';
		else {
			if (c == '-') {number -= now * f; now = 0; f = -1; }
			if (c >= 'a' && c <= 'z') { x -= (now == 0 ? 1 : now) * f; now = 0; f = 1; anx = c; }//特判1 
			if (c == '+') { number -= now * f; now = 0; f = 1; }
		}
	}
	number -= now * f;//特判2 
	double ans = 1.0 * (-number) / x;
	if (ans == 0) ans = 0;//这,程序会输出-0 
	printf("%c=%.3lf", anx,ans);
	return 0;
}
2020/11/3 22:53
加载中...