使用临时变量非常简单
#include<stdio.h>
int main()
{
int a = 1, b = 2, c = 0;
printf("a=");
scanf("%d", &a);
printf("b=");
scanf("%d", &b);
c = a;
a = b;
b = c;
printf("a=%d,b=%d\n", a, b);
system("pause");
return 0;
}
这时候我考虑可不可以不加入临时变量而同样达到目的呢
可以采用加减的方法
#include<stdio.h>
int main()
{
int a = 1, b = 2;
printf("a=");
scanf("%d", &a);
printf("b=");
scanf("%d", &b);
a = a + b;
b = a - b;
a = a - b;
printf("a=%d,b=%d\n", a, b);
system("pause");
return 0;
}
以及异或的方法
#include<stdio.h>
int main()
{
int a = 1, b = 2;
printf("a=");
scanf("%d", &a);
printf("b=");
scanf("%d", &b);
a = a ^ b;//构建一个集合
b = a ^ b;//取出集合中的另一个数
a = a ^ b;//取出集合中的另一个数
printf("a=%d,b=%d\n", a, b);
system("pause");
return 0;
}