1.
#include<stdio.h>
int main()
{
int a = 10;
int b = 20;
int temp = 0;
printf("开始时:a=%d\tb=%d\n", a, b);
temp = a;
a = b;
b = temp;
printf("交换后:a=%d\tb=%d\n", a, b);
getchar();
return 0;
}
这种方法是较为普遍的解决方法,创建一个变量,再三者进行交换。
2.不创建变量进行交换
#include<stdio.h>
int main()
{
int a = 23;
int b = 43;
printf("a=%d\tb=%d\n", a, b);
a = a + b;
b = a - b;
a = a - b;
printf("a=%d\tb=%d\n", a, b);
getchar();
return 0;
}
这种方法还存在的缺陷是如果a+b的值超过了int 类型数据范围,会出现数据溢出现象,造成结果错误。
3.异或法交换数据内容
#include<stdio.h>
int main()
{
int a = 23;
int b = 43;
printf("a=%d\tb=%d\n", a, b);
a = a^b;
b = a^b;
a = a^b;
printf("a=%d\tb=%d\n", a, b);
getchar();
return 0;
}
这种解决方法相比前两种没有创建变量,也没有结果溢出的错误。