方法1.通过相加减可以达到两数交换的目的,优点省事嘛,缺点就是有可能会产生数据溢出的情况。
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a = 5, b = 15;
a = a + b;
b = a - b;
a = a - b;
printf("a=%d b=%d\n", a, b);
system("pause");
return 0;
}
运行结果:
a = 15 , b = 5
方法2.使用乘除使两数交换,优点就不说了,缺点也是可能会溢出。
代码展示:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a = 5, b = 15;
a = a*b;
b = a / b;
a = a / b;
printf("a=%d b=%d\n", a, b);
system("pause");
return 0;
}
运行结果:
a = 15 , b = 5
方法3.对两数进行异或运算,利用异或的自反性,这种方法效率最高,且不会产生越界。(推荐使用)
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a = 5, b = 15;
a = a^b;
b = a^b;
a = a^b;
printf("a=%d b=%d\n", a, b);
system("pause");
return 0;
}
运行结果:
a = 15 , b = 5