c++ 实现四则运算

匿名 (未验证) 提交于 2019-12-02 23:59:01

描述:读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。

输出:计算结果,保留两位小数。

程序任务分为两部分:

一。将输入的中缀表达式转换为后缀表达式,实现过程:

  1.准备队列保存后缀表达式(计算后缀表达式时,需要从队首读取数据)

    准备栈保存计算符,使用找调整计算顺序    

  2.读输入字符串,如果是数字,直接入后缀表达式队列;

    如果是计算符号,当计算符号栈为空或当前符号优先级大于栈顶符号优先级,直接入栈。否则依次弹出栈顶符号入后缀表达式队列。

    如果是(直接入栈,如果是)弹出符号栈中符号入后缀表达式队列,直到((不入队)

  3.反复2过程直到读完所有字符串,若符号栈不为空,弹出其中所有元素入队

二。计算后缀表达式:

  计算栈

  1.弹出队列元素,如果是数字,直接入栈,如果是操作符号,弹出栈顶两个数字计算。

P.S.第一个弹出数字是第二个数字,第二个弹出数字是第一个数字。

    |--------|

    |temp2|

    |--------|

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!