代码如下(AC):
#include <bits/stdc++.h>
using namespace std;
int main()
{
char ch, x, tt;
int a = 0, b = 0;
int op = 1, t = 0, lst = 1;
while (cin>>ch)
{
if ((ch >= 'a' && ch <= 'z') || ch >= 'A' && ch <= 'Z')
{
if (t == 0 && tt != '0') t = 1;
x = ch;
a += lst * op * t;
t = 0;
}
else if (ch == '=')
{
b += t * op * lst;
t = 0;
op = -1;
lst = 1;
}
else if (ch == '+')
{
b += t * op * lst;
lst = 1;
t = 0;
}
else if (ch == '-')
{
b += t * op * lst;
lst = -1;
t = 0;
}
else t = t * 10 + (ch - '0');
tt = ch;
}
b += t * op * lst;
cout << x << "=";
printf("%.3f", b * -1.0 / a);
return 0;
}
但之前输入时写的是 while((ch = getchar()) != EOF)) 就全 WA 了,题目#1在IDE运行也是正确的,这是为什么?