如何将A,B的值进行交换,并且不使用任何中间变量?

来源:百度知道 编辑:UC知道 时间:2024/09/24 22:50:00
不能用函数

c++

#include <stdio.h>
#define swap(x,y) x^=y^=x^=y
void Swap(int &a,int &b)
{
a = a + b;
b = a - b;
a = a - b;
}
int main()
{
int a,b;
printf("输入第1个数\n");
scanf("%d",&a);
printf("输入第2个数\n");
scanf("%d",&b);
swap(a,b);
printf("交换后%d %d\n",a,b);
Swap(a,b);
printf("交换回来%d %d\n",a,b);
return 0;
}

两种方法。
1、#define swap(x,y) x^=y^=x^=y

2、a+b->a;a-b->b;a-b->a

A=A^B
B=A^B
A=A^B

语言?

swap A,B