标签:表达式 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字
标签:表达式 case 运算符 int alt 一个 功能 printf http
原文地址:https://www.cnblogs.com/tflsnoi/p/9574413.html