//不用if等语句判断两个数大小
#include<stdio.h>
void main()
{
int a,b,c,d,e,flag;
printf("please input number:");
scanf("%d%d",&a,&b);
//用flag 0,1判断
flag=(a>b);
printf("flag 0,1判断:\n");
printf("maxer number is :%d\n",a*flag+b*(1-flag));//两者较大者
printf("miner number is :%d\n",a*(1-flag)+b*flag);//两者较小者
//用数组判断
int k[2]={a,b};
printf("数组判断:\n");
printf("maxer number is :%d\n",k[a<b]);//两者较大者
printf("miner number is :%d\n",k[a>b]);//两者较小者
//用移位法判断
c=(unsigned)(a-b) >> 31;//(sizeof(int)*8-1);
d=a*(1-c)+b*c;
e=a*c+b*(1-c);
printf("移位法判断:\n");
printf("maxer number is :%d\n",d);//两者较大者
printf("miner number is :%d\n",e);//两者较小者
}版权声明:本文为qq_34875598原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。