比较数的大小

来源:百度知道 编辑:UC知道 时间:2024/05/28 18:20:47
请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句
1楼答的不错,可以把a等于b当作a大嘛
结合一下,我的做法是
#define compare(a,b) ((a)-(b)==fabs((a)-(b)))?a:b

我的想法使用绝对值,
((a-b)==abs(a-b))?1:0
(注:返回1:a>=b;返回0:a<b)

因为有a>=b,所以在之前在判断一个:
((a-b)==0)?1:0
(注:返回1:a=b;返回0:a!=b)

可能和你的题意不符,不过我也只能想到这么多了

?比较结果要返回什么啊?如果是a比b大返回正数,a等于b返回0,a比b小返回负数的话……那就简单了……
#define Cmp(a,b) (a)-(b)

但是如果要返回a和b中较大数的话……就想不出来了……