方法一:
采用简单的交换法
#include <stdio.h>
int main()
{
int a=10;
int b=20;
printf("a=%d b=%d\n",a,b);
a=a+b;//30
b=a-b;//10
a=a-b;//20
printf("a=%d b=%d",a,b);
return 0;
}
运行结果:
缺点:数字过大时,可能会产生溢出问题
方法二:
#include <stdio.h>
int main()
{
int a=10;
int b=20;
printf("a=%d b=%d\n",a,b);
a=a^b;
b=a^b;
a=a^b;
printf("a=%d b=%d",a,b);
return 0;
}
运行结果:
实现原理:
对数字进行异或,多次异或相当于交换了原来数字的位置,从而解决数字的溢出问题