要求:不用if、?、switch等其他判断语句,找出两个数中间比较大的。
方案一:
int max = ((a + b) + abs(a - b)) / 2;
其中:abs()是取绝对值函数。
方案二:
int c = a - b;
char *maxstr[2]={"a large","b large"};
c = ( unsigned(c) >> (sizeof(int) * 8 - 1) );
printf(maxstr[c]);
要求:不用if、?、switch等其他判断语句,找出两个数中间比较大的。
方案一:
int max = ((a + b) + abs(a - b)) / 2;
其中:abs()是取绝对值函数。
方案二:
int c = a - b;
char *maxstr[2]={"a large","b large"};
c = ( unsigned(c) >> (sizeof(int) * 8 - 1) );
printf(maxstr[c]);