2020-PTA总决赛-L2-1 简单计算器(仅代码)

题如其名,简单,栈最基本用法,题怎么说就怎么做,没有坑。

Code:

#include<bits/stdc++.h>
using namespace std;
stack<int> S1;
stack<char> S2;
int main(){
    int N, M;
    cin >> N;
    M = N - 1;
    while(N--){
        int v;
        cin >> v;
        S1.push(v);
    }
    while(M--){
        char op;
        cin >> op;
        S2.push(op);
    }
    while(!S2.empty()){
        int n1, n2;
        char op;
        n1 = S1.top();
        S1.pop();
        n2 = S1.top();
        S1.pop();
        op = S2.top();
        S2.pop();
        int res;
        if(op == '+'){
            res = n1 + n2;
        }else if(op == '-'){
            res = n2 - n1;
        }else if(op == '*'){
            res = n2 * n1;
        }else if(op == '/'){
            if(n1 == 0){
                cout << "ERROR: " << n2 << "/0";
                return 0;
            }
            res = n2 / n1;
        }
        S1.push(res);
    }
    cout << S1.top();
    return 0;
}
posted @ 2025-03-04 00:06  Yuhhhhh  阅读(35)  评论(0)    收藏  举报