主题:如何在不加入第三个变量的情况下,交换两个变量的值
cmdblock
[专家分:570] 发布于 2010-11-20 21:45:00
如何在不加入第三个变量的情况下,交换两个变量的值
求大侠给个思路
我想了很久没有想出来。
回复列表 (共6个回复)
沙发
liupeisong [专家分:2340] 发布于 2010-11-20 22:11:00
不只一种答案喔,给你一个例子
#include <stdio.h>
main ( )
{
int a=3,b=4;
printf("%d,%d\n",a,b);
a=a+b;
b=a-b;
a=a-b;
printf("%d,%d\n",a,b);
}
或者
#include <stdio.h>
main ( )
{
int a=3,b=4;
printf("%d,%d\n",a,b);
a=a^b;
b=a^b;
a=a^b;
printf("%d,%d\n",a,b);
}
板凳
lukexc [专家分:50] 发布于 2010-11-21 20:53:00
这盘真的长见识了!
3 楼
liupeisong [专家分:2340] 发布于 2010-11-21 23:01:00
[quote]这盘真的长见识了![/quote]
这种问题仅仅是游戏而已,不要去钻牛角尖了
4 楼
强强 [专家分:4740] 发布于 2010-11-22 08:32:00
长见识了
5 楼
nana_aoe [专家分:60] 发布于 2010-11-22 20:37:00
介个似乎好像很多面试题都有,使用异或的好处是,如果两个数都是比较大的数,相加可能会超出
int的范围,而使用异或,不论相加还是想减,都不会更改结果位数,不是超出范围。
6 楼
与天比高 [专家分:40] 发布于 2010-11-22 21:56:00
[quote]介个似乎好像很多面试题都有,使用异或的好处是,如果两个数都是比较大的数,相加可能会超出
int的范围,而使用异或,不论相加还是想减,都不会更改结果位数,不是超出范围。[/quote]
灰常支持!!!
我来回复