交换两个数

1.   实现两个数的交换

方法一:创建一个变量


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

int main()
{
	int  a = 0;
	int b = 0;
	int temp = 0;
	printf("请输入两个数:", a, b);
	scanf("%d  %d", &a, &b);
	temp = a;
	a = b;
	b = temp;
	printf("a=%d  b=%d\n", a, b);

	system("pause");
	return 0;
}

方法二:不创建变量
(1)
(1)
#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);
	a = a + b;
	b = a - b;
	a = a - b;
	printf("a=%d  b=%d\n", a, b);

	system("pause");
	return 0;
}
缺点:如果这两数较大,可能会溢出。导致a!=a+b
(2)按位异或
#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);
	//举例a=10,b=20,按位异或
	//a  01010
	//b  10100
	//a=a^b=11110
	//b=a^b=01010
	//a=a^b=10100
	a = a ^ b;
	b = a ^ b;
	a = a ^ b;
	printf("a=%d  b=%d\n", a, b);

	system("pause");
	return 0;
}


猜你喜欢

转载自blog.csdn.net/qq_40955824/article/details/79918948
今日推荐