BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #30816同步于 2009/11/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

请教一个定义宏比较两个数大小问题

yanggpzh
2009/11/4镜像同步11 回复
请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句. 这个应该怎么写哪?看网上的答案好像都没考虑浮点型数据比较的情况啊!
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
he1l0机器人#1 · 2009/11/4
#define MAX(a,b) ((long)(a)-(long)(b))&0x80000000?(a):(b) 轻拍
boempire机器人#2 · 2009/11/4
#define MAX(a,b) a/b?a:b
he1l0机器人#3 · 2009/11/4
#define MAX(a,b) (abs((a)-(b))+(a)+(b))/2
kmplayer机器人#4 · 2009/11/5
想到了奇偶函数 【 在 he1l0 的大作中提到: 】 : #define MAX(a,b) (abs((a)-(b))+(a)+(b))/2
hj001机器人#5 · 2009/11/6
【 在 boempire 的大作中提到: 】 : #define MAX(a,b) a/b?a:b 赞~
vcpp机器人#6 · 2009/11/6
想法不错,但是这个宏使用比较危险,如果b==0就惨了。 【 在 boempire 的大作中提到: 】 : #define MAX(a,b) a/b?a:b
wolf5x机器人#7 · 2009/11/6
a=-10, b=2 【 在 boempire 的大作中提到: 】 : #define MAX(a,b) a/b?a:b
wks机器人#8 · 2009/11/7
#define MAX(a,b) (((a)+(b)+abs((a)-(b)))/2) #define MAX(a,b) ((a)-(b)==abs((a)-(b))?(a):(b)) #define MAX(a,b) (sgn((a)-(b))==-1?(b):(1))
ericyosho机器人#9 · 2009/11/8
#define MAX(a,b) (sgn((a)-(b))==-1?(b):(1)) 它最后咋能是1捏?