0分求解
查看原帖
0分求解
1134686
_me_楼主2024/5/3 16:27
#include<bits/stdc++.h>
using namespace std;
int number, unknow, ans, d = 1;
string a, t, u;
bool f = 1, n = 1;
int main(){
 	getline(cin, a);
 	a += '+';
 	if(a[0] != '-' && a[0] != '+'){
	 	a.insert(0, "+");
	}
 	for(int i = 0; i < int(a.size()); i++){
	 	if(a[i] == '+' || a[i] == '-'){
		 	f = 0;
		}else if(a[i] == '='){
			f = 0;
			if(a[i + 1] != '-' && a[i + 1] != '+'){
				a.insert(i + 1, "+");
			}
		}
		else if(a[i] >= 97){
			if(t.size() == 1){
				t += '1';
			}
			u = a[i];
			n = 0;
			f = 0;
		}
		if(f){
			t += a[i];
		}
		else{
			//cout << t << '\n';
			ans = 0;
			int z = 1;
			t[0] == '+' ? z *= d * -1 : z *= d;
			for(int j = 1; j < int(t.size()); j++){
				if(t[j] != '=')ans = ans * 10 + t[j] - 48;
				//cout << t[j] << ' ' << ans << "n\n";
			}
			n ? number += ans * z * -1 : unknow += ans * z;
			f = 1; 
			t = a[i];
			n = 1;
			//cout << number << ' ' << unknow << "a\n";
			if(a[i] == '='){
				d = -1;
			}
		}
	}
	cout << u << '=';
	cout << fixed << setprecision(3) << number * 1.0 / unknow;
 	return 0;
}

1号测试点下载下来本机运行正确,测评错误 本机

2024/5/3 16:27
加载中...