#include #include using namespace std;

int main() { int N; cin >> N; stack S1; // 存放数字 stack S2; // 存放运算符

// 读取数字并压入S1
for (int i = 0; i < N; i++) {
    int num;
    cin >> num;
    S1.push(num);
}

// 读取运算符并压入S2
for (int i = 0; i < N-1; i++) {
    char op;
    cin >> op;
    S2.push(op);
}

// 执行计算
while (!S2.empty()) {
    int n1 = S1.top();
    S1.pop();
    int n2 = S1.top();
    S1.pop();
    char op = S2.top();
    S2.pop();
    
    int result;
    if (op == '+') {
        result = n2 + n1;
    } else if (op == '-') {
        result = n2 - n1;
    } else if (op == '*') {
        result = n2 * n1;
    } else if (op == '/') {
        if (n1 == 0) {
            cout << "ERROR: " << n2 << "/0" << endl;
            return 0;
        }
        result = n2 / n1;
    }
    
    S1.push(result);
}

cout << S1.top() << endl;

return 0;
用c++书写这个程序:本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器。如上图所示计算器由两个堆栈组成一个堆栈 S 1 存放数字另一个堆栈 S 2 存放运算符。计算器的最下方有一个等号键每次按下这个键计算器就执行以下操作:从 S 1 中弹出两个数字顺序为 n 1 和 n 2 ;从 S 2 中弹出一个运算符 op;执行计算 n 2 op n 1 ;将得到

原文地址: http://www.cveoy.top/t/topic/hTyZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录