虽然AC了,但是有个问题
查看原帖
虽然AC了,但是有个问题
746849
zhang_Jimmy卡线王楼主2023/9/21 19:29

为什么这个代码不开O2WA一个点,开O2就A了?

#include <bits/stdc++.h>
using namespace std;

string s;
char wzs;
int i;

int main(){
//	freopen(".in", "r", stdin);
//	freopen(".out", "w", stdout);
	cin >> s;
	for(int i = 0; s[i]; i ++)
		if(s[i] >= 'a' && s[i] <= 'z'){
			wzs = s[i]; 
			break;
		}
	int op = 1;
	int X = 0, Y = 0;
	int f1 = 1, f2 = - 1;
	for(int i = 0; s[i]; i ++){
		int x = 0;
		while(s[i] >= '0' && s[i] <= '9') x = x * 10 + s[i ++] - '0';
		if(i != s.size() && s[i] == wzs){
			X += op * (x ? x : 1) * f1; x = 0;
		} else{
			Y += op * x * f2;
			x = 0;
			if(s[i] == '+') op = 1;
			if(s[i] == '-') op = - 1;
			if(s[i] == '=') op = 1, f1 = - 1, f2 = 1;
		}
	}
	if(!Y) printf("%c=0.000", wzs);
	else printf("%c=%.3f", wzs, 1.0 * Y / X);
	return 0;
}
2023/9/21 19:29
加载中...