黑马程序员技术交流社区
标题:
算术方法——交换两个变量的值(2)
[打印本页]
作者:
悄然林静
时间:
2016-7-23 23:49
标题:
算术方法——交换两个变量的值(2)
如题,用算术方法,通过对变量重新赋值,最终达到交换两个变量的值的目的:
//中级方法
#include<stdio.h>
int main()
{
int a=5,b=20;
a=b-a; //对a变量重新赋值,执行完毕后a=15
b=b-a; //对b变量重新赋值,注意等式右边的a=15,执行完毕后b=5
a=b+a; //再次对a变量赋值,注意等式右边的b=5,执行完毕之后a=20
printf("a=%d\nb=%d\n",a,b);
return 0;
}
复制代码
相比贴(1)中的中间变量法,算数方法不容易想到,且需要进行多次计算,执行效率较差
作者:
gdutyong
时间:
2016-7-24 01:48
有个条件,如果在未知的情况下,a=b的话,会出现BUG
作者:
Chenjunfeng
时间:
2016-7-30 13:21
二楼说的很对,a=b时就交换不了。
作者:
anan安
时间:
2016-7-30 22:12
这样也可以???????
我之前用 121 加减减
现在用异或
a = a ^ b;
b = a ^ b;
a = a ^ b;
作者:
18072727834
时间:
2016-7-30 22:35
现在用异或做
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2