社区
新手乐园
帖子详情
求用"逆波兰式" 实现 简单的计算器程序,输入一串四则运算式子,能给出结果
xiaoxin369
2007-07-31 07:47:18
求 用逆波兰式 实现 简单的计算器程序,输入一串四则运算式子,能给出结果
如输入 5+8*(9+3),能给出结果
*如能在其中增加max min 运算更好
如输入 5+8-max(2,3)+5*min(5,6),程序能给出结果
...全文
679
7
打赏
收藏
求用"逆波兰式" 实现 简单的计算器程序,输入一串四则运算式子,能给出结果
求 用逆波兰式 实现 简单的计算器程序,输入一串四则运算式子,能给出结果 如输入 5+8*(9+3),能给出结果 *如能在其中增加max min 运算更好 如输入 5+8-max(2,3)+5*min(5,6),程序能给出结果
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
victorinsky
2007-08-02
打赏
举报
回复
逆波兰式的问题楼上已经说的很清除了,再给个另外的思路吧
也可以用递归来求算式的值
int f(char* s,int b,int e)
{
if(s[b]=='('&&s[e]==')'&&匹配)
return f(s,b+1,e-1);
else
{
找到优先级别最低的操作符@,以及它的位置m
return f(s,b,m-1) @ f(s,m+1,e);
}
这样也能计算出以中序给出的算式的结果
至于你说的min max,直接些两个函数就可以了
todototry
2007-08-01
打赏
举报
回复
原理便是这样
lz加油
即可以,okokok
todototry
2007-08-01
打赏
举报
回复
使用两个栈
一个运算对象的栈
一个运算符的栈
todototry
2007-08-01
打赏
举报
回复
看看编译原理,编译技术,算式处理方面
DraculaW
2007-08-01
打赏
举报
回复
嗯 作业题么
肯定没好好学 这个这么简单
嗯 楼主 在你身上我看到了当年的我 后悔中
MPTD_Fire
2007-07-31
打赏
举报
回复
void NiBoLan(char *str,char *new)//把中缀表达式str转换成逆波兰式new
{
p=str;q=new; //为方便起见,设str的两端都加上了优先级最低的特殊符号
InitStack(s); //s为运算符栈
while(*p)
{
if(*p是字母)) *q++=*p; //直接输出
else
{
c=gettop(s);
if(*p优先级比c高) push(s,*p);
else
{
while(gettop(s)优先级不比*p低)
{
pop(s,c);*(q++)=c;
}//while
push(s,*p); //运算符在栈内遵循越往栈顶优先级越高的原则
}//else
}//else
p++;
}//while
}//
MPTD_Fire
2007-07-31
打赏
举报
回复
int GetValue_NiBoLan(char *str)//对逆波兰式求值
{
p=str;InitStack(s); //s为操作数栈
while(*p)
{
if(*p是数) push(s,*p);
else
{
pop(s,a);pop(s,b);
r=compute(b,*p,a); //假设compute为执行双目运算的过程
push(s,r);
}//else
p++;
}//while
pop(s,r);return r;
}//GetValue_NiBoLan
c++
实现
的控制台
计算器
.rar
我的课程设计1,c++语言开发一个
计算器
,控制台
输入
字符串表达式计算出结果,可以
实现
四则运算
和sin,cos tan 混合运算显示结果。对
输入
表达式解析数字和符号(有负号判断),将表达式构建成树,进行计算
android
计算器
源码
calculator顾名思义,一个计算机小
程序
,但是功能并不完善。 只
实现
了个位数字的
四则运算
(运算结果则可以处理任意的位数,做到结果了才发现问题,于是及时处理了,前面则还没改) 原理是根据
输入
的字符串,应用
逆波兰式
规则处理,然后再进行相应计算。 例如
输入
: 5+2*8+9-4/2*3 处理为:528*+9+42/3*- android platform 1.6 api level 4 虚拟机测试 platform 2.2,运行正常
C++使用逆波兰表达式
实现
四则运算
C++使用逆波兰表达式
实现
计算器
的
四则运算
,即加、减、乘、除以及括号优先级运算
C
程序
设计语言
逆波兰式
计算器
学习心得
因为需要应试的原因需要刷刷C,在大家的推荐下,选用了《C
程序
设计语言》Brain等著的版本。今天在刷第四章的时候,学习了
逆波兰式
计算器
,书上代码及我的注释如下,心得跟在后面。 #include #include #define MAXOP 100 //这个是最大一次
输入
的长度 #define NUMBER '0' //一个标志,意味着接收到的是数字,换成其他也无妨 int getop(ch
栈的
简单
应用——带括号的小数
四则运算
计算器
(逆波兰表达式)
不会吧,不会吧,不会吧?还有人不知道怎么用栈写出一个带括号的四则
计算器
吗? 然鹅,当他们开始写的时候,才突然发现,上了个大逼当!光是乘除先于加减就已经难倒一片同学了,更丧心病狂的是有的学校还加上了括号!不过没关系,今天就让濡白来给大家梳理一下,如何利用栈的思想以及逆波兰表达式快速解决这......
新手乐园
33,311
社区成员
41,784
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章