码迷,mamicode.com
首页 > 其他好文 > 详细

逆波兰表达式

时间:2017-04-03 21:23:28      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:clu   turn   表示   运算符   code   功能   iostream   atof   using   

* 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型。

逆波兰表达式

标签:clu   turn   表示   运算符   code   功能   iostream   atof   using   

原文地址:http://www.cnblogs.com/16-CHQ/p/6663602.html

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