这个算是L2里边最水的题目吗?
还是使用了stl变得简单起来了。
题意是给你n个数字,n-1个运算符,计算结果。
开一个栈,一个一个取,运算、判断,有清晰的思路一遍就可以过了。(不像其他L2的题目那样刁钻)。
#include<bits/stdc++.h>
using namespace std;
stack<int> s1;
stack<char> s2;
int n;
int a[1010];
char s[1010];
int main()
{
cin >> n;
for(int i=0;i<n;i++)
{
cin >> a[i];
s1.push(a[i]);
}
for(int i=0;i<n-1;i++)
{
cin >> s[i];
s2.push(s[i]);
}
int a1,a2;
char op;
while(!s2.empty())
{
a1 = s1.top();
s1.pop();
a2 = s1.top();
s1.pop();
op = s2.top();
s2.pop();
//a2 = a2 op a1;
switch(op)
{
case '+':
a2 = a2 + a1;
break;
case '-':
a2 = a2 - a1;
break;
case '*':
a2 = a2 * a1;
break;
case '/':
if(a1==0)
{
printf("ERROR: %d/0",a2);
return 0;
}
a2 = a2/a1;
break;
}
s1.push(a2);
}
cout << s1.top();
return 0;
}