我也写了一个表达式求值的程序,用C写的。有以下功能:
  + - * 、 ( ) 
    1.可以处理负数,若第一个数为负数,则不需要括号;若负数不是第一个数,则需要括号。
    2.可以输入浮点数并计算(double型的)。
    3.可以精确到小数点后6位,若小数点后有多余的零,则输出时,可以屏蔽掉(即不输出0)。
    4.表达式值的范围:-20亿 到 +20亿
    5.除数为0,则输出“除数不能为零”。
    6.若左括号多于或少于右括号,则输出“表达式错误”。
    7.若输入的数据为
  1..2+3
  或
   1.2.3+4
  ,则输出“表达式错误”。
    8.若输入的数据为
  1.+3
  或
   .3+4
  ,则输出“表达式错误”。
    9.可以处理多层括号。
    10.若输入
    1+ 01
  ,则输出“表达式错误”。
    11.若只输入一个操作数
  或
  多层括号中一个操作数
  ,则输出 该操作数。
       若只输入操作数
  或 操作符,则输出 “表达式错误”。
       若输入的操作数
  或 操作符多输了、或少输了, 则输出 “表达式错误”。
       若输入除表达式以外的字符(空格除外),则输出“表达式错误”。
    12.表达式的任何地方都可以输入 空格 。
    13.例:
           输入
                        输出
           1/2回车
                      0.5
           1/3+2/3回车
                   1
           1/3回车
                     0.333333
           2/3回车
                     0.666667
           -4.0/2.0回车
                -2
           -4.0/(-2.0)/(-1.0)回车
      -2
   你们评评,看还有哪些功能上的漏洞,过几天,我再把代码上传。