请问可以用scanf("%lld.", &num)吗
查看原帖
请问可以用scanf("%lld.", &num)吗
217715
hzy1721楼主2021/5/7 22:12

本地是可以过样例的,但是提交后样例都过不了,是scanf的问题吗?

#include <cstdio>
#include <stack>

using namespace std;

stack<long long> S;

int main()
{
    long long num;
    char op;
    while (true) {
        if (scanf("%lld.", &num) == 1) {
            // printf("num: %lld\n", num);
            S.push(num);
        } else if (scanf("%c", &op) == 1) {
            // printf("op: %c\n", op);
            if (op == '@')
                break;
            if (op != '+' && op != '-' && op != '*' && op != '/')
                continue;
            long long n1, n2, res;
            n2 = S.top();
            S.pop();
            n1 = S.top();
            S.pop();
            if (op == '+')
                res = n1 + n2;
            else if (op == '-')
                res = n1 - n2;
            else if (op == '*')
                res = n1 * n2;
            else if (op == '/')
                res = n1 / n2;
            S.push(res);
        }
    }
    printf("%lld\n", S.top());
    return 0;
}
2021/5/7 22:12
加载中...