已经AC了,但有个问题
查看原帖
已经AC了,但有个问题
731925
happy_zero楼主2023/2/22 12:08

代码如下(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运行也是正确的,这是为什么?

2023/2/22 12:08
加载中...