用c语言实现交换两个数的内容的三种方法

第一种方法:

创建一个临时变量,实现两个数的交换

#include<stdio.h>

int main()
{
	int a = 10;
	int b = 20;
	int tmp;
	tmp = a;
	a = b;
	b = tmp;
	printf("%d %d", a, b);
	system("pause");
	return 0;
}

第二种方法:

用数学的思想,

#include<stdio.h>

int main()
{
        int a = 10;
	int b = 20;
	a = a + b;//a += b ;此时的a为a与b的和
	b = a - b;//所以b=a+b-b,就相当于把a给了b
	a = a - b;//a -= b;而此时的b已经存了a,a=a+b-a,就相当于把b存给了a
	printf("%d %d", a, b);
	system("pause");
	return 0;
}

第三种方法:(最优解)

用异或(^)实现,

#include<stdio.h>

int main()
{
	int a = 10;
	int b = 20;
	a = a ^ b;//a^=b;
	b = a ^ b;//b^=a;//此时b=a^b^b=a,所以即为把a赋给b
	a = a ^ b;//a^=b;//同理
	printf("%d %d", a, b);
	system("pause");
	return 0;
}





猜你喜欢

转载自blog.csdn.net/dongbo_aaa/article/details/80044506