- 6
- 0
- 约7.19千字
- 约 21页
- 2018-02-06 发布于湖北
- 举报
信息学奥赛教学-栈-C++版749.ppt
main() { printf(input a string(@_over):); gets(s); printf(result=%d,comp(s)); system(pause); return 0; } * hrehtrhtrjr 栈的用途极为广泛,在源程序编译中表达式的计算、过程的嵌套调用和递归调用等都要用到栈,下面以表达式计算为例子加以说明。 源程序编译中,若要把一个含有表达式的赋值语句翻译成正确求值的机器语言,首先应正确地解释表达式。例如,对赋值语句 X=4+8×2-3; (式 11.1) 其正确的计算结果应该是17,但若在编译程序中简单地按自左向右扫描的原则进行计算,则为:X=12×2-3=24-3=21 这结果显然是错误的。因此,为了使编译程序能够正确地求值,必须事先规定求值的顺序和规则。通常采用运算符优先数法。 一般表达式中会遇到操作数、运算符和语句结束符等,以算术运算符为例,对每种运算赋予一个优先数,如: 运算符:× ÷ + - 优先数:2 2 1 1 (语句结束符“;”的优先数为零) 在运算过程中,优先数高的运算符应先进行运算(但遇到括号时,应另作处理)。按这样的规定,对式(11.1)自左向右进行运算时,其计算顺序
原创力文档

文档评论(0)