2 + 3 表示为 + 2 3
( 2 + 3 )* 4 表示为* +2 3 4
本题求解波兰表达式的值,其中运算符包括+ - * / 四个。
输入:输入为一行,其中运算符和运算数之间都用空格分开,运算数是浮点数;
输出:输出为一行,表达式的值。
#include<cstdio>
#include<iostream>
#include<cstdlib>
using namespace std;
double exp()
{
char ch[20];
cin >> ch;
switch (ch[0])
{
case '+': return exp() + exp();
case '-': return exp() - exp();
case '*': return exp() * exp();
case '/': return exp() / exp();
default: return atof(ch);
break;
}
}
int main()
{
printf("%lf", exp());
return 0;
}