7-323 逆波兰表达式

简介: 7-323 逆波兰表达式

7-323 逆波兰表达式 (10 分)


逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表示法为+ 2 3。逆波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的逆波兰表示法为* + 2 3 4。本题求解逆波兰表达式的值,其中运算符包括+ - * /四个。


输入格式:


输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点数。


输出格式:


输出为一行,表达式的值。 可直接用printf("%f\n", v)输出表达式的值v。


提示


可使用atof(str)把字符串转换为一个double类型的浮点数。atof定义在math.h中。 此题可使用函数递归调用的方法求解。


输入样例:


* + 11.0 12.0 + 24.0 35.0


结尾无空行


输出样例:


1357.000000


结尾无空行


#include<iostream>
using namespace std;
double exp(){
    char s[20];
    cin >> s;
    switch(s[0]){
            case '+':return exp()+exp();
            case '-':return exp()-exp();
            case '*':return exp()*exp();
            case '/':return exp()/exp();
            default:    return atof(s);
            break;
    }
}
int main(){
    printf("%.6lf",exp());
    return 0;
}
目录
相关文章
|
10月前
【逆波兰表达式求值】
【逆波兰表达式求值】
|
2月前
|
索引
【力扣刷题】数组实现栈、后缀表达式(逆波兰表达式)求值、中缀表达式转换为后缀表达式(无括号&&有括号)
【力扣刷题】数组实现栈、后缀表达式(逆波兰表达式)求值、中缀表达式转换为后缀表达式(无括号&&有括号)
23 0
|
2月前
彻底大悟!逆波兰表达式求值(150)
彻底大悟!逆波兰表达式求值(150)
|
12月前
1198:逆波兰表达式
1198:逆波兰表达式
100 0
|
11月前
中缀表达式转后缀表达式(逆波兰式)
中缀表达式转后缀表达式(逆波兰式)
116 0
|
2月前
|
Java C++ Python
leetcode-150:逆波兰表达式求值
leetcode-150:逆波兰表达式求值
25 0
|
2月前
逆波兰表达式求值
逆波兰表达式求值
42 1
|
12月前
|
算法
中缀表达式转后缀表达式(1、2、3) 2021-03-26
中缀表达式转后缀表达式(1、2、3) 2021-03-26
120 0
中缀表达式转后缀表达式(1、2、3) 2021-03-26
后缀表达式
后缀表达式
77 0
LeetCode 150 逆波兰表达式求值
构造一个栈,遇到运算符就弹出进行运算