先设置两个数,再交换。
#include<stdio.h>
int main()
{
int a = 5;
int b = 6;
int c;
c = a;
a = b;
b = c;
printf("a=%d\tb=%d", a, b);
}
接下来是不使用中间变量
第一种
#include<stdio.h>
int main()
{
int a = 5;
int b = 6;
a = a + b;//将a中值先变更
b = a - b;//根据b还未变,a为原值的和,减原b为原a的值
a = a - b;//a减原a,此时已交换
printf("a=%d\tb=%d", a, b);
}
也可利用第一次将a设为a和b的差,方法同样,也可以达到同样的效果。
{
a=b-a;
b=b-a;
a=b+a;
}
另一种实现交换不借助中间变量的方法
#include<stdio.h>
int main()
{
int a = 5;
int b = 6;
a = a^b;//先使a为原a与原b相异或的值
b = b^a;//则原b与a的结果为原a
a = b^a;//同理,使a为原b
printf("a=%d\tb=%d", a, b);
}
这是利用计算机中的异或进行计算的