//借助临时变量
基本思路:将一个变量的值赋给临时变量,再将另一个变量的值赋给临时变量,最后将临时变量的值赋给一个变量。
代码:
#include<stdio.h>
#include<stdlib.h>
//交换两个整形变量的值
int main()
{
int i = 2;
int j = 4;
int num = 0;
num = i;
i = j;
j = num;
printf("i = %d\nj = %d", i, j);
system("pause");
return 0;
}
//不借助临时变量
基本思路:采用加减法(很好理解,不作多的解释)。
代码:
#include<stdio.h>
#include<stdlib.h>
//交换两个整形变量的值
int main()
{
int i = 2;
int j = 4;
i = i+j;
j = i-j;
i = i-j;
printf("i = %d\nj = %d", i, j);
system("pause");
return 0;
}
这种方法需要注意的是:结果可能溢出。
//按二进制位异或的方法
基本思路:两个数异或,相同为0,相异为1。(比如:010->2 , 100->4。按代码次序异或:010^100=110,110^100=010,
110^010=100)
代码:
#include<stdio.h>
#include<stdlib.h>
//交换两个整形变量的值
int main()
{
int i = 2;
int j = 4;
i = i^j;
j = i^j;
i = i^j;
printf("i = %d\nj = %d", i, j);
system("pause");
return 0;
}