两个数的交换问题
对a,b两个数进行交换,a=10,b=20。
方法有很多,如下列举三种简单的方法:
1、利用变量tmp进行交换
#include <stdio.h>
int main()
{
int a = 10;
int b = 20;
int tmp;
tmp = a;
a = b;
b = tmp;
printf("%d %d\n",a,b);
return 0;
}
2、利用加减法交换
#include <stdio.h>
int main()
{
int a = 10;
int b = 20;
a = a + b;
b = a - b;
a = a - b;
printf("%d %d\n",a,b);
return 0;
}
3、使用异或方法交换
#include <stdio.h>
int main()
{
int a = 10;//二进制为:0000 1010
int b = 20;//二进制为:0001 0100
a = a ^ b; //0000 1010 ^ 0001 0100 = 0001 1110
b = a ^ b; //0001 1110 ^ 0001 0100 = 0000 1010
a = a ^ b; //0001 1110 ^ 0000 1010 = 0001 0100
printf("%d %d\n",a,b);
return 0;
}