不创建临时变量,交换两个数

不创建临时变量,交换两个数
1.异或(相同为0,不同为1)
a = a ^ b
b = a ^ b
a = a ^ b
解释:b = a ^ b = a ^ b ^ b = a;
a = a ^ b ^ a ^ b ^ b = b;

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

int main()
{
	int a = 0;
	int b = 0;
	printf("请输入a,b的值");
	scanf("%d%d",&a,&b);
	printf("a=%d,b=%d\n",a,b);
	printf("交换后的值为:\n");
	a = a ^ b;
	b = a ^ b;
	a = a ^ b;
	printf("a=%d,b=%d",a,b);
	return 0;
}

2.加减
a = a + b
b = a - b
a = a - b

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

int main()
{
	int a = 0;
	int b = 0;
	printf("请输入a,b的值");
	scanf("%d%d",&a,&b);
	printf("a=%d,b=%d\n",a,b);
	printf("交换后的值为:\n");
	a = a + b;
	b = a - b;
	a = a - b;
	printf("a=%d,b=%d",a,b);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/Amoralmmm/article/details/92178505
今日推荐