计算机在处理算术表达式的时候,可将表达式先转换成后缀形式,然后利用栈进行计算。例如,表达式“46+5*(120-37)”的后缀表达式形式为“46 5 120 37 - * +”。
下面的函数computing(char expr[],int *result)的功能就是基于栈计算后缀形式的表达式(以串形式存入字符组expr)的值,并通过参数result带回该值。函数的返回值为-1/0,分别表示表达式有/无错误。假设表达式中仅包含数字、空格和算术运算符号,其中所有项均以空格分隔,且运算符仅包含加(“+”)、减(“-”)、乘(“*”)、除(“/”).
代码: