以下是引用stdio在2006-2-13 21:57:00的发言:
我有一个利用异或运算交换两个变量的值
也不用中间变量
swap(int *x, int *y)
{
*a=*a^*b;
*b=*b^*a;
*a=*a^*b;
}
我有一个利用异或运算交换两个变量的值
也不用中间变量
swap(int *x, int *y)
{
*a=*a^*b;
*b=*b^*a;
*a=*a^*b;
}
你这里面连x,y都没用到
----------------解决方案--------------------------------------------------------
A:是正确的
B:swap(int *p,int *q); 多一个; 号
C: a和b是同一段地址(0是地址) 所以*a=10,*b=20; 使得*a和*b的值都是20;
D: *x=&a,*y=&b; 多了*号
----------------解决方案--------------------------------------------------------
我还有个更加简单的,不过你们再想想吧
一下子说出来就没意思了
就一条语句而已
----------------解决方案--------------------------------------------------------
想不出来,一条语句?
----------------解决方案--------------------------------------------------------
?:?
----------------解决方案--------------------------------------------------------
^_^ 别偷笑了....讲讲看....
----------------解决方案--------------------------------------------------------
a>b ? a : b
你们是不是在说交换呀
----------------解决方案--------------------------------------------------------
是呀,神说一条语句就交换了两个值.
a>b?a:b 这个..不可行吧...
----------------解决方案--------------------------------------------------------
那我就说了啊
简单的方法一共有两种,我第一次只独立想出了第一种,第二种是网络上流传的方法
第一种 a=a+b,b=a-b,a=a-b;
第二种 a^=b^=a^=b;
你们想到了吗?
----------------解决方案--------------------------------------------------------
失算了 我说的是Max用。
楼上所说第一种 以前省地方用 现在少了
----------------解决方案--------------------------------------------------------