求两个数中的较大值max(a,b)。(不用if,>) 您所在的位置:网站首页 python求两个数的较大者 求两个数中的较大值max(a,b)。(不用if,>)

求两个数中的较大值max(a,b)。(不用if,>)

2024-07-11 23:09| 来源: 网络整理| 查看: 265

题目:求两个数的较大值,不能使用if、>。

1.不使用if、>,还要比较大小,貌似就只能使用条件表达式:

  x=?:;  (表达式1为true时,返回表达式2;否则返回表达式3)

 

2. 本题目中使用条件表达式:

  max(a.b)=? b:a;  (表达式1为true时,返回b;否则返回a)

 

3.如何写表达式1,区分a与b的大小。(不用>)

  可以使用位运算,判断a-b的符号位。符号位为1(负数),a=b。

  bool运算,非0表示true,0表达false。

 

实例代码看如下:

1 #include 2 3 /** 4 (a-b)&0x80000000 5 32为机器,int,最高位置1 6 使用“与“运算判断a-b是否为非负数 7 */ 8 #define max(a,b) (((a-b)&0x80000000)?b:a) 9 int main() 10 { 11 printf("sizeof(int)=%d\n",sizeof(int)); 12 printf("max(2,3)=%d\n",max(2,3)); 13 printf("max(2,2)=%d\n",max(2,2)); 14 printf("max(0,2)=%d\n",max(2,0)); 15 return 0; 16 }

 输出:

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有