数据结构实验之栈三:后缀式求值
Time Limit: 1000MS
Memory Limit: 65536KB
Problem Description
对于一个基于二元运算符的后缀表示式(基本操作数都是一位正整数),求其代表的算术表达式的值。
Input
输入一个算术表达式的后缀式字符串,以‘#’作为结束标志。
Output
求该后缀式所对应的算术表达式的值,并输出之。
Example Input
59*684/-3*+#
Example Output
57
Hint
#include<stdio.h>
int change(int x,int y,char c)
{
if(c=='+') return x+y;
if(c=='-') return x-y;
if(c=='*') return x*y;
if(c=='/') return x/y;
}
int main()
{
char c;
int stack[110];
int top=-1;
while(~scanf("%c",&c),c!='#')
{
if(c>='0'&&c<='9')
stack[++top]=c-'0';
else
{
int x=stack[top];top--;
int y=stack[top];
stack[top]=change(y,x,c);
}
}
printf("%d",stack[0]);
return 0;
}