码迷,mamicode.com
首页 > 编程语言 > 详细

c++ 实现四则运算

时间:2019-09-08 00:14:10      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:数字   取数   整数   读取数据   过程   nbsp   遇到   小数   描述   

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

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

 

程序任务分为两部分:

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

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

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

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

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

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

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

二。计算后缀表达式:

  计算栈

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

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

    |temp1|   栈顶    temp2 - temp1  注意这一点,容易在减和除运算中出错

    |--------|

    |temp2|

    |--------|

 

c++ 实现四则运算

标签:数字   取数   整数   读取数据   过程   nbsp   遇到   小数   描述   

原文地址:https://www.cnblogs.com/a-cloud---/p/11483901.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!