电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

利用栈实现c语言计算器

4页
  • 卖家[上传人]:pu****.1
  • 文档编号:477600178
  • 上传时间:2023-06-30
  • 文档格式:DOC
  • 文档大小:19.51KB
  • / 4 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、栈的应用:C实现简单计算器(表达式的计算)作为栈的著名应用,表达式的计算可以用下面方法实现:首先建立两个栈,操作数栈NUM_S和运算符栈OPR_S。其中,操作数栈用来存储表达式中的操作数;运算符栈用来存储表达式中的运算符。可以用字符=来表示表达式结束符。自左至右的扫描待处理的表达式,并假设当前扫描到的符号为W,根据不同的符号W做如下不同的处理: 1.若W为操作数,则将W压入操作数栈NUM_S,且继续扫描下一个字符; 2.若W为运算符,则根据运算符的性质做相应的处理: (0)若符号栈为空,无条件入栈当前指针指向的字符(1)若w为不大于运算符栈栈顶的运算符,则从操作数栈NUM_S中弹出两个操作数,设先后弹出的操作数为a、b,再从运算符栈OPR_S中弹出一个运算符,比如为+,然后作运算a+b,并将运算结果压入操作数栈NUM_S。(2)若w为左括号或者运算符的优先级大于运算符栈栈顶的运算符,则将运算符W压入运算符栈OPR_S,并继续扫描下一个字符。(3)若运算符W为右括号,循环操作(设先后弹出的操作数为a、b,再从运算符栈OPR_S中弹出一个运算符,比如为+,然后作运算a+b, 并将运算结果压

      2、入操作数栈NUM_S),直到从运算符栈中弹出第一个左括号。(4)若运算符W为表达式结束符=,循环操作(设先后弹出的操作数为a、b,再从运算符栈OPR_S中弹出一个运算符,比如为+,然后作运算a+b, 并将运算结果压入操作数栈NUM_S),直到运算符栈为空为止。此时,操作数栈栈顶元素即为表达式的值。=举例: 计算 3+(5-2*3)/4-2=(1)开始栈为空,3入栈,+入栈,(无条件入栈,5入栈,-号优先级比(高,所以-号入栈,2入栈,*优先级比目前栈顶的-号优先级高,所以*入栈,3入栈,接着扫描到)括号,)括号不入栈| | | |- -| 3 | | * |- -| 2 | | - |- -| 5 | | ( |- -| 3 | | + |- - 操作数栈 操作符栈 (2) 在)括号碰到(括号之前,让操作数栈一直出栈,直到让左括号出栈为止 所以: 2,3弹出操作数栈,*弹出操作符号栈,计算 2*3 = 6,然后将6入操作数栈 | | | |- -| | | |- -| 6 | | - |- -| 5 | | ( |- -| 3 | | + |- - 操作数栈 操作符栈 (3) 接着6,

      3、5弹出操作数栈,-弹出操作符栈,计算 5-6 = -1, 然后将-1入操作数栈,然后左括号出栈 | | | |- -| | | |- -| | | |- -| -1 | | |- -| 3 | | + |- - 操作数栈 操作符栈 (4)接着向下遍历表达式,到/号,优先级比操作符栈栈顶+高,所以/压栈,然后接着扫描,4入栈,再接着扫描到-号,优先级比操作符栈栈顶/的优先级低,则操作数栈4,-1出栈,操作符栈/出栈,计算-1/4 = 0, | | | |- -| | | |- -| 4 | | |- -| -1 | | / |- -| 3 | | + |- - 操作数栈 操作符栈 (5) 将上一步结果0压入操作数栈,刚才扫描到的-号,优先级和+号相同,则-号不入栈,将0,3弹出,将+号弹出,计算 3+0 = 3 | | | |- -| | | |- -| | | |- -| 0 | | |- -| 3 | | + |- - 操作数栈 操作符栈 (6)将上一步中的结果3压入操作数栈,-号入操作符栈,接着扫描到2,2入操作数栈,接着扫描,发现到了=号,则操作数栈2,3弹出,操作符栈-号弹出,计算 3-2 = 1 | | | |- -| | | |- -| | | |- -| 2 | | |- -| 3 | | - |- - 操作数栈 操作符栈 (7)将上一步中的结果1压入操作数栈,最后1弹出栈,作为最后结果。 | | | |- -| | | |- -| | | |- -| | | |- -| 1 | | |- - 操作数栈 操作符栈 /= 完=/

      《利用栈实现c语言计算器》由会员pu****.1分享,可在线阅读,更多相关《利用栈实现c语言计算器》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.