您的位置:首页 > 其它

后缀表达式求值

2016-07-11 22:13 218 查看
思路:判断是不是数字字符,如果是数字,入栈,遇到字符就将栈顶元素和次栈顶元素出栈,进行计算操作,然后将计算结果入栈,循环最后,最后剩下一个栈顶元素就是表达式的数值。

代码如下:

#include <stdio.h>
int main()
{
int i=-1,top=-1,a[100];
char ch;
while(scanf("%c",&ch) && ch!='#')
{
if(ch>='0' && ch<='9')
a[++i]=ch-'0';
else
{
int n,m;
n=a[i-1];
m=a[i];
i=i-2;
if(ch=='+')
a[++i]=n+m;
if(ch=='-')
a[++i]=n-m;
if(ch=='*')
a[++i]=n*m;
if(ch=='/')
a[++i]=n/m;
}
}
printf("%d\n",a[0]);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: