/*
*问题:输入一行逆波兰表达式,程序运行后输出表达式结果
*定义:逆波兰表达式:
1.一个数是一个逆波兰表达式值为该数
2."运算符 逆波兰表达式 逆波兰表达式" 是逆波兰表达式,值为两个逆波兰表达式的值运算的结果
*/
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
double exp()
{//读入一个逆波兰表达式,并计算其值
char s[30];//表达式长度小于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("%lf",exp());
return 0;
}

运行结果:

逆波兰表达式问题_逆波兰表达式