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_逆波兰表达式求值
10_逆波兰表达式求值
|
2月前
【LeetCode 25】150.逆波兰表达式求值
【LeetCode 25】150.逆波兰表达式求值
13 0
|
2月前
|
存储 C语言
中缀表达式转后缀表达式
本文提供了一个C语言程序,用于将中缀表达式转换为后缀表达式,并计算后缀表达式的结果,包括处理运算符优先级、括号匹配以及基本的四则运算。
49 0
|
7月前
|
索引
【力扣刷题】数组实现栈、后缀表达式(逆波兰表达式)求值、中缀表达式转换为后缀表达式(无括号&&有括号)
【力扣刷题】数组实现栈、后缀表达式(逆波兰表达式)求值、中缀表达式转换为后缀表达式(无括号&&有括号)
58 0
|
7月前
彻底大悟!逆波兰表达式求值(150)
彻底大悟!逆波兰表达式求值(150)
中缀表达式转后缀表达式(逆波兰式)
中缀表达式转后缀表达式(逆波兰式)
183 0
|
7月前
逆波兰表达式求值
逆波兰表达式求值
73 1
|
7月前
|
Java C++ Python
leetcode-150:逆波兰表达式求值
leetcode-150:逆波兰表达式求值
41 0