PAT L2-033. 简单计算器
原题链接
简单
作者:
青丝蛊
,
2021-04-10 10:05:32
,
所有人可见
,
阅读 324
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
stack<int> st1;
stack<char> st2;
for (int i = 0; i < n; i++)
{
int x; cin >> x;
st1.push(x);
}
for (int i = 0; i < n - 1; i++)
{
char c; cin >> c;
st2.push(c);
}
while (st2.size())
{
int a = st1.top(); st1.pop();
int b = st1.top(); st1.pop();
char c = st2.top(); st2.pop();
if (!a && c == '/')
{
printf("ERROR: %d/0", b);
return 0;
}
else
{
switch (c)
{
case '+': st1.push(a + b); break;
case '-': st1.push(b - a); break;
case '*': st1.push(a * b); break;
case '/': st1.push(b / a); break;
}
}
}
cout << st1.top();
return 0;
}