0
点赞
收藏
分享

微信扫一扫

交换两个数的三个方法

源码之路 2022-03-12 阅读 73

方法一:
利用一个临时变量进行交换

int main()
{
	int a, b, temp;
	scanf_s("%d %d", &a, &b);
	printf("a = %d ,b = %d\n", a, b);
	temp = a;
	a = b;
	b = temp;
	printf("a = %d ,b = %d", a, b);
}

方法二:
利用加法原则

int main()
{
	int a, b;
	scanf_s("%d %d",&a,&b);
	printf("a = %d ,b = %d\n", a, b);//a = 10;b = 20
	a = a + b; //a = 30;b =20 
	b = a - b; //b = 30 - 20 = 10
	a = a - b; //a = 30 -10
	printf("a = %d ,b = %d", a, b);
}

方法三:
利用按位异或(^)相同为0,不同为1。
令a = 3(011);b = 4(100)
则:
a = a^b(111)
b = a^b(011) = 3
a = a^b(100) = 4

int main()
{
	int a, b;
	scanf_s("%d %d", &a, &b);
	printf("a = %d ,b = %d\n", a, b);
	a = a ^ b;
	b = a ^ b;
	a = a ^ b;
	printf("a = %d ,b = %d", a, b);
}
举报

相关推荐

0 条评论