c语言用while编译四则运算,如何使用c语言实现四则运算,详细思路很重要啊(越详细越好~),可以木有代码(急)...

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

kuke7981

2014.09.18

02ae427d08e371d7e90d5b995e828d6d.png

采纳率:41%    等级:7

已帮助:306人

1.判断四则运算字符串的括号是否匹配,可以用以个栈来计算,开始栈是空,从头遍历所有字符,找到'(',压栈,找到')'弹出一个元素,遍历完成以后如果栈是空表示正常,非空,或则中间出现问题都表示括号不正常。

2.分解四则运算中的所有元素,把所有分解的元素放在队列中,遍历整个字符串,有switch分支,如果是0-9的字符用一个字符串存储并和前面的字符组合起来,如果是'+''-''*''/'就把前面存储数字的字符串当成一个元素放进队列,并把当前运算法符当成一个元素也放进队列,遍历完成以后所有的数据和运算符都分开了,比如234+456,会分解成234,+,456三个元素。

3.然后分解队列,用两个栈,一个存放所有元素用A表示,一个存放运算符号用B表示(这个是临时变量),从头开始遍历整个队列,如果是数据就把数据压到A栈。如果元素是运算符就分开处理,如果是'(''+''-''*''/'')'处理方法都不一样,详细说明太复杂,整体的思想就是把数据和运算符的顺序排列好(上面的元素排列以后变成234,456,+;可以参考后序排列)。

4.计算:依次弹出A中的元素,如果是数据把数据压在栈C中,如果是运算符,从C中弹出该运算符需要的数据,然后把计算结果再次压进栈C,当A遍历完以后,C顶元素就是计算结果。

整个大题思路:1.检查,2.分解,3.中序排列,4.后序排列,5.计算追问: 能不能用代码解释一下。。。

追答:代码太长,这里发不了,字数不够了

00分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值