Do not create temporary variables, swap two numbers

Without creating temporary variables, two numbers exchange
1. XOR (the same is 0, is different. 1)
A = B A ^
B ^ A = B
A = B ^ A
Dictionary: 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. pressurized, dropping
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;
}

Guess you like

Origin blog.csdn.net/Amoralmmm/article/details/92178505