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;
}
运行结果:
相关文章
- qt中连接两个数据库
- Shell 计算两个数的加减乘除取余(+、-、*、、/)
- Word格式处理控件Aspose.Words for .NET教程——比较两个文档的差异
- 【算法】【递归与动态规划模块】两个字符串的公共最长子序列
- 并发工具类(四)两个线程进行数据交换的Exchanger
- 两个Web应用必须的Servlet Filter
- Python代码大全之如何合并append两个字典
- python 同时运行两个程序
- 如何不借助新的变量交换两个变量的值
- SDN/NFV:定义网络未来发展的两个不同面
- MySql折腾小记二:text/blog类型不允许设置默认值,不允许存在两个CURRENT_TIMESTAMP
- 曹工说面试:当应用依赖jar包的A版本,中间件jar包依赖B版本,两个版本不兼容,这还怎么玩?
- 不借助第三个变量实现两个变量的交换
- vue-cli配置多入口多出口,实现一个项目两个访问地址,区分不同上线环境