【问题描述】
表达式计算是实现程序设计语言的基本问题之一,也是栈的应用的一个典型例子。设计一个程序,演示用算符优先法对算术表达式求值的过程。(难度系数:0.7)
【基本要求】
以字符序列的形式从终端输入语法正确的、不含变量的整数表达式。利用运算符优先关系,实现对算术四则混合运算表达式的求值。
【测试数据】
8;1+2+3+4;88-1*5;1024/4*8;1024/(4*8);(20+2)*(6/2);3-3-3;8/(9-9);2*(6+2*(3+6*(6+6)));(((6+6)*6+3)*2+6)*2;
【实现提示】
设置运算符栈和运算数栈辅助分析算符优先关系;在读入表达式的字符序列的同时,完成运算符和运算数(整数)的识别处理,以及相应的运算;在程序的适当位置输出运算符栈、运算数栈、输入字符和主要操作等内容。
【选做内容】
(1) 扩充运算符集,如增加乘方、单目减、赋值等运算。
(2) 运算量可以是变量。
(3) 运算量可以是实数类型。