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