问题描述:假设算术表达式中可以包含+,-,*,/,(,)这6个运算符,要计算的表达式以字符序列的形式在程序运行时输入。为了便于实现,规定:(1) 每个表达式均以字符#开始,以#号结束,(例如,#23*(13+8)-7*6+100# ),表达式中不能出现数字和运算符以外的其它字符(空格也不行);(2)表达式中的运算数只能是非负整数;(3)输入的表达式都是合法的。
编写程序,完成输入一个合法的算述表达式,输出其运算结果。(例如,#23*(13-8)-7*6+100#,则输出: 173)
提示:通过教材中第78页的案例3.3分析,对算法3.22中调用的几个函数予以实现:
- 函数In(L,c):判断c是否为运算符;
//L是存放运算法的集合(可以用线性表表示,也可以用一维数组表示),
// c是字符,若c是运算符则返回值1,否则返回0。也可以用别的方法
- 函数Precede(t1,t2):
//判断运算符t1和t2的优先级,返回值用’>