黑马程序员技术交流社区
标题: 交换2个数的值,以前学习C的时候 好像没有留意这个问题 [打印本页]
作者: huguozhang 时间: 2015-7-9 16:54
标题: 交换2个数的值,以前学习C的时候 好像没有留意这个问题
除了使用变量temp交换两个数以外,还有以下两种不常用的方法,很给力
void changeTwoNum(int a,int b){
printf("交换前a=%d b=%d\n",a,b);
//1,加减法(可能溢出)
a = b - a ;
b = b - a;
a = b + a;
//2,按位异或
a = a^b;
b = a^b;
a = a^b;
printf("交换后a=%d b=%d",a,b);
}
作者: 慕名黑马生 时间: 2015-7-9 21:16
试了,通过
作者: iOSNC 时间: 2015-7-10 18:27
我记得有3种啊
作者: unnamed 时间: 2015-7-10 21:22
第三种就是采用中间变量的方法。
作者: carshoel 时间: 2015-7-10 22:01
也可以用除法或乘法:a=a*b/a;b=a*b/b;
作者: 小小羊 时间: 2015-7-10 22:16
第一个可以这样- a = a+b;
- b = a-b;
- a = a-b;
复制代码
作者: 闪电侠 时间: 2015-7-10 22:36
这都是比较高端的方法,但实际开发中一般就用一个临时变量temp来交换
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |