C语言版:
double PrePolish()
{
char str[10];
double f1,f2;
scanf("%s",str);
switch(str[0])
{
case'+':{f1=PrePolish();f2=PrePolish();return f1+f2;}
case'-':{f1=PrePolish();f2=PrePolish();return f1-f2;}
case'*':{f1=PrePolish();f2=PrePolish();return f1*f2;}
case'/':{f1=PrePolish();f2=PrePolish();return f1/f2;}
default: return atof(str);
}
}
本文介绍了一个使用C语言实现的表达式求值算法。该算法通过递归地解析和计算逆波兰表示法(Reverse Polish Notation, RPN)的数学表达式,支持加、减、乘、除四则运算。当遇到操作数时,直接将其转换为双精度浮点数;当遇到运算符时,则调用自身进行子表达式的求值并执行相应的运算。
342

被折叠的 条评论
为什么被折叠?



