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

1198:逆波兰表达式

时间:2018-09-02 18:50:17      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:表达式   case   运算符   int   alt   一个   功能   printf   http   

题目连接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1198

 

一递归写法:(由逆波兰表达式的概念而写)---认真理解其概念

技术分享图片

 

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstdlib>
 4 double Calculation() //读入一个逆波兰表达式,并计算其值 (注意是读入并计算)
 5 {
 6     char a[10];//注意这个字符数组用于存放读入的表达式,表达式可能是一串数字,暂时把它作为字符串存放,当输入为运算符时,只会占用第一个字符。
 7     scanf("%s",a);
 8     switch (a[0])
 9     {
10         case +:
11         return Calculation()+Calculation();
12         case -:
13         return Calculation()-Calculation();
14         case *:
15         return Calculation()*Calculation();
16         case /:
17         return Calculation()/Calculation();
18         default:
19         return atof(a);
20         //atof(),是C++语言标准库中的一个字符串处理函数,功能是把字符串转换成浮点数,
21         //所使用的头文件为<stdlib.h>。该函数名是 “ascii to floating point numbers” 的缩写。语法格式为:double atof(const char *nptr)。 
22     }
23 }
24 
25 int main() 
26 {
27     double ans;
28     ans =Calculation();
29     printf("%f\n",ans);
30     return 0;
31 }

 

二、用栈写

1 等讲栈时补充,此处略去10000字

 

1198:逆波兰表达式

标签:表达式   case   运算符   int   alt   一个   功能   printf   http   

原文地址:https://www.cnblogs.com/tflsnoi/p/9574413.html

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