要实现一个简单的计算器,可以对+,-,*,/,(,)进行处理并返回正确的值,最先想到的就是逆波兰表达式实现之.首先,用到第一个栈把算式转化为逆波兰表达式存一个数组中,在使用另一个栈对这个数组进行,判断,出栈,运算,入栈,判断……不断处理,最后的栈顶元素就是结果,直接返回就ok.关于这一个过程这篇博客写得很清楚:http://blog.youkuaiyun.com/xiaobai1593/article/details/6765574
下面是我用c++实现的,我已经测试了多组输入OK.
#include<iostream>
#include<stack>
#include <stdlib.h>
#include<stdio.h>
using namespace std;
//把一个算式先转化为逆波兰表达式
int Priority(char ch)//定义优先级别
{
int i;
switch(ch)
{
case'(':i=1;break;
case'+':i=2;break;
case'-':i=2;break;
case'*':i=4;break;
case'/':i=4;break;
case