使用C++实现计算器
文章标签
MySQL Workbench
一、计算器实现的思路
在计算器的实现中,需要将用户输入的算式转换成计算机可以识别和处理的形式,然后进行计算并输出结果。
第一步是将用户输入的中缀表达式转换成后缀表达式,这样方便计算机进行计算。在转换中,需要注意运算符的优先级。
第二步是将转换后的后缀表达式利用栈进行计算,遇到操作数则压入栈中,遇到运算符则出栈两个操作数进行运算,并将运算结果压入栈中。
第三步是将栈中最后一个元素即为计算结果,将其输出给用户。
二、中缀转后缀的实现
中缀表达式转后缀表达式可以使用栈来实现,在将运算符压入栈中前需要弹出优先级比它高或相等的运算符。
vector infix2postfix(vector infix){ stack s; vector postfix; map priority; priority["+"] = 1; priority["-"] = 1; priority["*"] = 2; priority["/"] = 2; priority["("] = 0; for(int i=0;i=priority[token]){ postfix.push_back(s.top()); s.pop(); } s.push(token); } } while(!s.empty()){ postfix.push_back(s.top()); s.pop(); } return postfix; }
三、后缀表达式的计算实现
后缀表达式的计算可以使用栈来实现,在遇到操作数时将其压入栈中,在遇到运算符时弹出栈顶的两个元素进行计算,将结果再次压入栈中。
int eval_postfix(vector postfix){ stack s; for(int i=0;i
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
上一篇:C++编译器的选择及使用技巧 下一篇:提高代码效率的一种二进制运算符
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。