计算概论05
****************************
若直接处理逆波兰表达式,会涉及到一系列的进栈、出栈操作,容易出错。而逆波兰表达式的定义本身就是递归的,因此可以用递归函数解决问题。代码实现上,巧妙地利用了scanf函数读入字符串时利用空格作为结束标志的特点,可以不断的按顺序读入。
#include <stdio.h> #include <math.h> #include <stdlib.h> double exp() { char a[10]; scanf("%s",a); switch(a[0]) { case '+': return exp()+exp(); case '-': return exp()-exp(); case '*': return exp()*exp(); case '/': return exp()/exp(); default: return atof(a); } } int main() { double ans; ans=exp(); printf("%f",ans); return 0; } atof函数,用来把字符串转换成浮点数,返回类型为double型。但是貌似并不在math.h里,而是在stdlib.h里。**********************************
坚持,而不是打鸡血~