`
liukexiong
  • 浏览: 83757 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

不添加任何参数,将a,b值互相交换

阅读更多
/*
 * 有两个数int a,int b,中途不要添加任何参数,将a,b值互相交换
 */
#include<stdio.h>
#include<stdlib.h>

void swap(int *a,int *b)
{
   *a=*a+*b;
   *b=*a-*b;
   *a=*a-*b;
}

int main()
{
   int a,b;
   a=5;
   b=3;
   printf("交换前a=%d,b=%d\n",a,b);
   swap(&a,&b);
   printf("交换后a=%d,b=%d\n",a,b);
}

 

分享到:
评论
2 楼 爱在爪哇 2012-05-21  
加减法交换法可能溢出导致出错,可以考虑字节运算:
a^=b;
b^=a;
a^=b;
效率可能高且结果正常。
1 楼 tg008007x3 2010-12-27  

相关推荐

Global site tag (gtag.js) - Google Analytics