后缀表达式求值
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;
}
代码如下:
#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;
}
相关文章推荐
- C语言培训_006
- Hash, MAC,HMAC
- linux下使用select实现精确定时器
- Delphi 使用双缓冲解决图片切换时的闪烁问题 good
- css小记
- C++ 类模板二(类模版与友元函数)
- Java正则表达式细节1
- iOS 10 新特性
- CodeForces 548B Mike and Fun
- POJ 1416 DFS
- 一个web项目web.xml的配置中<context-param>配置作用
- POJ 1416 DFS
- Integer.parseInt() 和 valueOf()
- swagger
- jsp中css突然不能访问
- 微信、陌陌等著名IM软件设计架构详解
- python学习——装饰器
- Java - 如何进入阻塞状态
- volly的使用【源码解析volly】(四)
- 自定义组件初学