为什么这个代码不开O2WA一个点,开O2就A了?
#include <bits/stdc++.h>
using namespace std;
string s;
char wzs;
int i;
int main(){
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;
}