//计算波兰表达式
#include<iostream>
#include<string>
using namespace std;
const int MAX_SIZE = 100;//定义栈的最大容量
typedef struct stack
{
int top;
int data[MAX_SIZE];
}stack;
stack S;
/*
计算波兰表达式
数字入栈,符号计算入栈
*/
void Solution()
{
string s;
cin>>s;
int s_len=s.length();
S.top=0;//初始化
int i=0;//迭代器
int num;//存储中间值
while(i<s_len)
{
if(s[i]>='0'&&s[i]<='9')
S.data[S.top++]=s[i]-'0';
else
{
switch(s[i])
{
case '+':num=S.data[S.top-1]+S.data[S.top-2];S.data[S.top++]=num;break;
case '-':num=S.data[S.top-2]-S.data[S.top-1];S.data[S.top++]=num;break;
case '*':num=S.data[S.top-1]*S.data[S.top-2];S.data[S.top++]=num;break;
case '/':if(S.data[S.top-1]!=0)
{num=S.data[S.top-1]+S.data[S.top-2];S.data[S.top++]=num;break;}
else
cout<<"除数不为0"<<endl;
}
}
i++;
}
cout<<S.data[S.top-1]<<endl;
}
int main()
{
Solution();
system("pause");
}
计算波兰表达式
最新推荐文章于 2024-11-13 12:29:42 发布