[C]经典算法——不用第三变量交换两数

来源:互联网 发布:大手鼠标推荐 知乎 编辑:程序博客网 时间:2024/04/28 19:04
以下代码利用中间变量temp交换两数
#include  <stdio.h>
main()
{
int x,y,temp;
scanf("%d%d",&x,&y);
printf("x=%d,y=%d/n",x,y);
temp=x;
x=y;
y=temp;
printf("x=%d,y=%d/n",x,y);
}
写出不用第三变量交换x和y值的算法

用算术或异或
x = x + y;
y = x - y;
x = x - y;

x = x^y;// 只能对int,char..
y = x^y;
x = x^y;

x ^= y ^= x; 
原创粉丝点击