逆波兰表达式
逆波兰表达式又名后缀表达式。逆波兰表示法是波兰逻辑学家J・卢卡西维兹(J・ Lukasiewicz)于1929年首先提出的一种表达式的表示方法 。后来,人们就把用这种表示法写出的表达式称作“逆波兰表达式”。逆波兰表达式把运算量写在前面,把算符写在后面。
如: * + 2 3 5 ==(2+3)*5
//采用递归思路求解
#include<iostream>
#include<cstdlib>
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);
}
}
int main() {
cout << exp();
return 0;
}
atof函数
atof()是C 语言标准库中的一个字符串处理函数,功能是把字符串转换成浮点数,所使用的头文件为<stdlib.h>。该函数名是 “ascii to floating point numbers” 的缩写。语法格式为:double atof(const char *nptr)