zl程序教程

您现在的位置是:首页 >  其它

当前栏目

2021-07-22_交换两个数的大小

两个 2021 大小 22 07 交换
2023-09-11 14:22:56 时间

交换两个数
1.创建第3个变量

#include<stdio.h>
int main()
{
	int a = 3;
	int b = 5;
	int temp = 0;
	printf("交换前:a=%d b=%d\n", a, b);
	temp = a;
	a = b;
	b = temp;
	printf("交换后:a=%d b=%d\n", a, b);
	return 0;
}

运行结果:
在这里插入图片描述
2.加减的方法

#include<stdio.h>
int main()
{
	int a = 3;
	int b = 5;
	printf("交换前:a=%d b=%d\n", a, b);
	a = a + b;//a 还是原来的a,b还是原来的b
	b = a - b;//b得到原来的a
	a = a - b;//a得到原来的b
	printf("交换后:a=%d b=%d\n", a, b);
	return 0;
}

运行结果:
在这里插入图片描述
不足:
-----会出现溢出
int ---- 占4个字节 ----- 32 个bite位
在这里插入图片描述
右击INT_MAX,点击转到定义;
在这里插入图片描述
在这里插入图片描述
如果两数之和大于 2147483647 就会产生溢出

3.(二进制)异或的方法----相同为0,相异为1
a=3 转换为二进制 011
b=5 转换为二进制 101
a= a^b —110
b= a^b —011
a=a^b —101
发现a b二者进行了交换;

 #include<stdio.h>
int main()
{
	int a = 3;
	int b = 5;
	printf("交换前:a=%d b=%d\n", a, b);
	a = a ^ b;
	b = a ^ b;
	a = a ^ b;
	printf("交换后:a=%d b=%d\n", a, b);
	return 0;
}

运行结果:
在这里插入图片描述