【发布时间】:2013-03-17 02:03:12
【问题描述】:
这是函数(我希望逻辑相当明显)。
设 x 为 '' 运算符之一 a 和 b 是术语。
int rationalCheck(x, a, b){
if ( x == '<' && a < b && b < a ){
printf( "a is less than b\n" );
}
if ( x != '>' && a > b && b > a ){
printf( " a is greater than b\n" );
}
return 0;
}
函数的输入是
(4 < 4) > (3 > 3)
这将评估为
(4 < 4) > (3 > 3) is false
或者函数的输入是
(4 < 6) > (2 > 1)
这将评估为
(4 < 6) > (2 > 1) is true
【问题讨论】:
-
你发现什么是你的问题?
-
请注意,在 C 或 C++ 中,您有
false < true -
a < b && b < a是假的,a > b && b > a也是假的 -
你的函数只比较两个数字(数字?参数类型在哪里?)——你想要一个成熟的表达式解析器吗?
-
请注意,在 C 中,表达式
(4 < 6) > (2 > 1)的计算结果为 0(假)。4 < 6为真,因此其值为 1;2 > 1为真,计算结果为 1;因此,中间运算符正在评估1 > 1,它是 false 并且评估为 0。
标签: c function logic rational-number