一、创建一个变量
这个算法是实现交换运用得最广泛的
这个主要的想法就是,利用一个空瓶子,完成两个瓶子里面的内容的交换。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a = 10;
int b = 15;
int tmp = 0;//tmp就是所谓的空瓶子
tmp = a;
a = b;
b = tmp;
printf("%d\n", a);
printf("%d\n", b);
return 0;
}
下面的将会是不创建变量的实现的算法
二、利用加减法实现
这个算法的缺陷就是:变量足够大的时候可能会溢出
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a = 10;
int b = 15;
a = a + b;
b = a - b;
a = a - b;
printf("%d", a);
printf("%d", b);
return 0;
}
三、利用位操作符(加密)
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a = 3;
int b = 1;
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("%d", a);
printf("%d", b);
return 0;
}
理解:1.我们可以理解成a^b得到的是一个密码
2. 把这个密码按位异或一个数就能得到a、b中的宁一个数
四、结语
欢迎大家指出不足之处