| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1320 人关注过本帖
标题:[求助]关于表达试的计算
只看楼主 加入收藏
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用mp3aaa在2006-10-9 21:51:42的发言:

我还有个问题哦 你说的把着写用字符输入 那输入的字符应该是放在一个数组里吧 等用到运算符号计算的时候 符号怎么在转换过来呢? 符号在数组里 没发当运算符来用吧


遇到操作符就说明前面是一个数(注意处理最后一个数).把数直接压栈,操作符是不用转换的,直接做判断就可以了.还有操作符是不用压栈的,只在外部做判断,不进入栈中.


倚天照海花无数,流水高山心自知。
2006-10-09 22:06
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
以下是引用nuciewth在2006-10-9 22:00:35的发言:

a b * 5 - 操作符在操作数之后.

哦哦 对对 我刚刚又仔细的做了一边 是ab*5-
那在怎么出栈呢?

图片附件: 游客没有浏览图片的权限,请 登录注册

[此贴子已经被作者于2006-10-9 22:19:01编辑过]


羊肉串 葡萄干 哈密瓜!!
2006-10-09 22:14
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
将a b依次压栈之后遇到*就计算a*b(a,b出栈)把结果压栈,再把5压栈,遇到-,计算结果压栈.
每次都是这样.(注意括号内的表达式要先做.)

倚天照海花无数,流水高山心自知。
2006-10-09 22:24
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
以下是引用nuciewth在2006-10-9 22:06:56的发言:


遇到操作符就说明前面是一个数(注意处理最后一个数).把数直接压栈,操作符是不用转换的,直接做判断就可以了.还有操作符是不用压栈的,只在外部做判断,不进入栈中.


没看明白 我想的是 开始肯定是要求输入表达式的吧 应该是用gets(A) 吧? 把a*b-5都放到数组A中吧 ? 然后用中缀专后缀 然后在一边出栈一边计算 最后计算出结果来 。
可是运算符都是输入到数组A中了啊 运算符在数组中是没法用的啊?

羊肉串 葡萄干 哈密瓜!!
2006-10-09 22:29
lcw1229
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2006-9-15
收藏
得分:0 
*,/高于+,-的优先级吗

平凡中有所作为!
2006-10-09 22:34
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
以下是引用nuciewth在2006-10-9 22:24:51的发言:
将a b依次压栈之后遇到*就计算a*b(a,b出栈)把结果压栈,再把5压栈,遇到-,计算结果压栈.
每次都是这样.(注意括号内的表达式要先做.)

噢? 原来是边压栈边判断边计算啊!


恩 我明白了

[此贴子已经被作者于2006-10-9 22:41:00编辑过]


羊肉串 葡萄干 哈密瓜!!
2006-10-09 22:35
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
以下是引用lcw1229在2006-10-9 22:34:11的发言:
*,/高于+,-的优先级吗

。。当然拉


羊肉串 葡萄干 哈密瓜!!
2006-10-09 22:36
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
1.中缀转后缀直接放在一个字符数组.(中间有操作符优先级的判断,还有括号丢掉,压栈的顺序不同).
2.将后缀表达式数组中的数字字符转换成数压入一个数栈中,遇到操作符则运算,将结果压栈.直到栈中只剩一个数,且后缀表达式数组已经遍历完.

倚天照海花无数,流水高山心自知。
2006-10-09 22:49
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
以下是引用mp3aaa在2006-10-9 22:35:32的发言:

噢? 原来是边压栈边判断边计算啊!


恩 我明白了

着样应该对了吧

图片附件: 游客没有浏览图片的权限,请 登录注册


羊肉串 葡萄干 哈密瓜!!
2006-10-09 23:06
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
以下是引用nuciewth在2006-10-9 22:49:05的发言:
1.中缀转后缀直接放在一个字符数组.(中间有操作符优先级的判断,还有括号丢掉,压栈的顺序不同).
2.将后缀表达式数组中的数字字符转换成数压入一个数栈中,遇到操作符则运算,将结果压栈.直到栈中只剩一个数,且后缀表达式数组已经遍历完.

那不对吧
如果是 a -b*5 那他应该先判断 - 与Y栈顶的运算符那个高 在计算才对 如果 -比Y栈顶的运算符优先级底的话 应该 运算Y栈顶的运算符吧
着样还得用2个栈啊
/*我是不是有点笨了?,我是今天刚刚学栈的,因为我是上高中,所以没有老师教,只能自己看书学,所以还请大哥多帮忙啊*/


羊肉串 葡萄干 哈密瓜!!
2006-10-09 23:15
快速回复:[求助]关于表达试的计算
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026836 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved