我也写了一个表达式求值的程序,用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
你们评评,看还有哪些功能上的漏洞,过几天,我再把代码上传。