逆波兰表达式

* 8 5 == 8 * 5

+ 9 9 == 9 + 9

逆波兰表达式的定义

1.一个数是逆波兰表达式,值为该数。

2.”运算符 逆波兰表达式 逆波兰表达式“ 是逆波兰表示式 值是两个逆波兰表达式运算的结果。

逆波兰表示式是一种把运算符放在前面的表达式

要求你用编写一个程序来计算逆波兰表达式

显然 逆波兰表示式的定义就是使用递归定义的,所以我们用递归实现逆波兰表达式的计算。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstdlib>
 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型。

posted @ 2017-04-03 20:51  码农CHQ  阅读(209)  评论(0编辑  收藏  举报