* 8 5 == 8 * 5
+ 9 9 == 9 + 9
逆波兰表达式的定义
1.一个数是逆波兰表达式,值为该数。
2.”运算符 逆波兰表达式 逆波兰表达式“ 是逆波兰表示式 值是两个逆波兰表达式运算的结果。
逆波兰表示式是一种把运算符放在前面的表达式
要求你用编写一个程序来计算逆波兰表达式
显然 逆波兰表示式的定义就是使用递归定义的,所以我们用递归实现逆波兰表达式的计算。
1 #include2 #include 3 #include 4 using namespace std; 5 6 double exp() 7 { 8 char s[20];//读入一个数 用字符数组储存 9 cin >> s;10 switch(s[0])11 {12 case '+': return exp() + exp(); 13 case '-': return exp() - exp();14 case '*': return exp() * exp();15 case '/': return exp() / exp();16 default: return atof(s);//将字符数组转变为double型数据并返回double数据17 break;18 }19 }20 21 int main()22 {23 printf("%f\n",exp());24 return 0;25 }
atof 是C++的一个库函数 功能是把一个字符数组中储存的浮点数转化为double型。