不创建临时变量(第三个变量),实现两个数的交换

实现两个数的交换最简单的方法是创建一个临时变量,然后进行交换。代码如下:

#include<stdio.h>
int main()
{
	int a = 10;
	int b = 20;
	int c = 0;
	c = a;
	a = b;
	b = c;
	printf("%d %d",a,b);
	
	return 0;
}

但是在不创建临时变量的条件下应该怎么做呢?

异或方法

#include<stdio.h>
int main()
{
	int a = 10;
	int b = 20;
	int c = 0;
	a = a^b;
	b = a^b;
	a = a^b;
	printf("%d %d",a,b);
	
	return 0;
}

我们画图来解释下这种方法。
在这里插入图片描述

加减法

#include<stdio.h>
int main()
{
	int a = 10;
	int b = 20;
	int c = 0;
	a = a+b;
	b = a-b;
	a = a-b;
	printf("%d %d",a,b);
	
	return 0;
}

同样,我们画图来解释。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lvxin15353715790/article/details/87866122