#P1539. Evaluating Simple C Expressions

Evaluating Simple C Expressions

题目描述

本题要求评估一系列简单的C语言表达式,但解题无需掌握C语言知识!每个表达式独占一行且不超过80个字符。待评估的表达式仅包含整型变量和有限运算符,不含常量。共有26个可能出现的变量,即小写字母a-z(初始值分别为$a=1,b=2,...,z=26$)。每个变量在表达式中最多出现一次,许多变量可能完全不被使用。

运算符说明

  1. 二元运算符:$+$和$-$,遵循常规运算规则
  2. 一元运算符
    • $++var$:先自增再参与运算
    • $var++$:先参与运算再自增
    • $--var$:先自减再参与运算
    • $var--$:先参与运算再自减

输入格式

逐行读取表达式,直至遇到空行结束。输入保证:

  • 忽略所有空格
  • 不会出现$a+++b$这类歧义表达式
  • 单个变量不会同时出现前置和后置运算符(如$++a++$)

输出格式

对每个表达式依次输出:

  1. 原表达式(保留原始格式)
  2. 表达式计算结果
  3. 表达式中涉及变量的最终值(未涉及的变量不输出)

样例输入

a + b
b - z
a+b--+c++
c+f--+--a
   f-- + c-- + d-++e

样例输出

Expression: a + b
    value = 3
    a = 1
    b = 2
Expression: b - z
    value = -24
    b = 2
    z = 26
Expression: a+b--+c++
    value = 6
    a = 1
    b = 1
    c = 4
Expression: c+f--+--a
    value = 9
    a = 0
    c = 3
    f = 5
Expression:    f-- + c-- + d-++e
    value = 7
    c = 2
    d = 4
    e = 6
    f = 5

来源

North Central North America 1993