Chinaunix首页 | 论坛 | 博客
  • 博客访问: 196220
  • 博文数量: 51
  • 博客积分: 1435
  • 博客等级: 上尉
  • 技术积分: 590
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-05 18:33
文章分类

全部博文(51)

文章存档

2012年(17)

2011年(34)

分类: C/C++

2011-04-16 16:27:28

源码来自网络大牛,学习之用。此版本会出现溢出。
更多详细见帖子
上面好多大牛对此都写了自己的代码。
  1. #include <stdio.h>
  2. int max(int,int);
  3. int main()
  4. {
  5.     int x=1,y=2;
  6.     printf("%d",max(x,y));
  7.     return 0;
  8. }
  9. int max(int x,int y)
  10. {

  11.  int buf[2]={x,y};

  12.  unsigned int z;
  13.         z=x-y;

  14.         z>>=31;

  15. return buf[z];

  16. }
---------------------------------
int max=(x+y+abs(x-y))/2;
int min=(x+y-abs(x-y))/2;
阅读(997) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~