c语言数据交换方法,实现C语言数据交换的几种方法
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
来源一:比特网 来源二:东方锐智
这是个很common的例子,实现2个数据a,b的交换,a的值给b,b的值给a.
一般做法是借助中间变量缓存,实现交换。实现方法如下:
#include
int main(void){
int a , b, t;
scanf("%d%d", &a, &b);
t = a;
a = b;
b = t;
printf("%d %d\n", a, b);
return 0;
}
第二种方法是不用任何变量,使用强制相加,然后逐一分离,如下:
#include
int main(void){
int a , b;
scanf("%d%d", &a, &b);//a = a1,b = b1
a = a + b;//a = a1 + b1
b = a - b;//b = a1 + b1 - b1 => b = a1
a = a - b;//a = a1 + b1 - (a1 + b1 - b1) => a = b1
printf("%d %d\n", a, b);
return 0;
}
第三种方法,指针交换,例如:
#include
int main(void){
int a , b;
scanf("%d%d", &a, &b);
printf("%d %d\n", b, a);
return 0;
}
还有一种是堆栈方式,改变出栈顺序,嵌入汇编如下:
push a
push b
pop a
pop b
当然也可用c语言来实现堆栈函数,然后来完成a,b交换。
总结:实现方式多种,有自己的优劣势。第一种常用,但多一个变量;第二种,少一个变量,但不常用;第三种简洁好用。第四种用堆栈的特性先进后出,改变出栈顺序实现交换。
c语言数据交换方法,实现C语言数据交换的几种方法相关推荐
- 数据导出到excel文件给客户端下载的几种方法
(原创)datagrid数据导出到excel文件给客户端下载的几种方法 看到这个觉得这个人很厉害,mvp啊. 我就改成这个样子了. Response.Clear(); Respons ...
- 在ML中缺乏数据可是个大问题,亲测有效的5种方法帮您解决
https://www.toutiao.com/a6701193162699833859/ 在我做过的很多项目中,公司虽然有非常棒的AI商业创意,但当他们意识到自己没有足够的数据时,却会慢慢的变得沮丧 ...
- Database之SQLSever:SQLSever数据表管理(GUI法/SQL语句命令法两种方法实现建立表、修改表,以及增、删、改、查)之详细攻略
Database之SQLSever:SQLSever数据表管理(GUI法/SQL语句命令法两种方法实现建立表.修改表,以及增.删.改.查)之详细攻略 目录 一.两种方法建立表.修改表,插入多条数据记录 ...
- 在java中的交换方法有哪些_java中交换两个变量的值有哪几种方法,交换两个变量a和b的值...
java中交换两个变量的值有哪几种方法在Java中,有哪些方法可以交换两个变量的值, 方法: 1.定义临时变量 2.没有必要定义临时变量 3.使用位运算符 (学习视频分享:java课程) 代码示例: ...
- xis表格怎么打印_Excel表格过大,如何将数据打印在一张A4纸上?3种方法帮你搞定...
原标题:Excel表格过大,如何将数据打印在一张A4纸上?3种方法帮你搞定 我们在工作时候,经常会打印Excel表,不知道你在打印Excel时候有没有遇到这样的情况,因为Excel表格过大,无法在一张 ...
- dwr框架查看外放方法_硬核!教你三种方法,实现微信自定义修改地区!
前几天,有小伙伴问怎样自定义修改微信地区?当时说的第二天分享,结果在录制第二种方法的时候,突发意外,出现"微信以停止运行"的状况,明明早上还好好的,怎么就打不开了呢?也木有做任何操 ...
- Vue父组件访问子组件属性和方法、父子组件双向绑定(两种方法)
Vue父组件访问子组件属性和方法.父子组件双向绑定(两种方法) 1. 使用vue-cli创建项目 目录结构如下图: 2. 编写代码 src/components/HelloWorld.vue < ...
- ABB机器人选项包,密钥,三种方法,真实、虚拟、密钥三种方法
ABB机器人选项包,密钥,三种方法,真实.虚拟.密钥三种方法,有教程.有软件.也有密钥 YID:75188661261334891
- html整体页面缩放的方法,html5中让页面缩放的4种方法
1.viewport 这种方法,不是所有的浏览器都兼容 2.百分比 这种方法,可以兼容大部分浏览器,但是修改幅度比较大 .main .login .txt1{margin-top:8.59375%; ...
- linux c语言乘法口诀,shell 脚本实现乘法口诀表的两种方法——shell与C语言
shell 脚本实现乘法口诀表的两种方法--shell与C语言 话不多说直接给出代码(执行c语言时没有gcc编译器会报错的哦!): 1 #!/bin/bash 2 if [ $# -eq 0 ] 3 ...
最新文章
- 我的世界java版gamemode指令_我的世界切换生存和创造模式的命令是什么?
- NRF52810能不能替代NRF52832
- H264码流的两种形式:Annex B和AVCC
- ubuntu_ftp_server配置方法
- Linux shell 操作命令 mkdir
- 台式计算机计量单位,计算机的计量单位以及常见的数据类型
- linux监测node进程,通过node_exporter监控linux服务器一
- 男朋友的回答可以多敷衍?
- netty冲突 play sbt_《Netty官方文档》本地传输接口
- php随机关键词,php实现向含html文本内容随机位置插入关键词
- mysql 外键设置
- 淄博计算机文化基础试卷,我校顺利举办省高校计算机文化基础考试并获佳绩
- 零基础学启发式算法(4)-模拟退火 (Simulated Annealing)
- 毕业设计 - 题目 :基于大数据的疫情数据分析及可视化系统
- 求大佬解决0x00881340 处有未经处理的异常(在 ConsoleApplication1.exe 中): 0xC0000005: 写入位置 0x00993B8C 时发生访问冲突。
- 安装配置limesurvey
- Windows注册表详解
- firefly-rk3288点mipi屏TV080WUM-NL0有显示无背光
- flex布局实现骰子六面的示例
- 因一个 Bug,谷歌、GitHub、亚马逊等网站全球大范围宕机!
热门文章
- Web前端线上系统课-01-HTML+CSS/08-结构伪类-图形-字体-字体图标-元素定位
- 【C语言】详解atoi函数
- html编写四则运算,JavaScript实现四则运算
- python安装0x80072ee7_商店错误代码0x80072EE7 教你win10商店错误代码0x80072EE7的解决方法...
- 系统蓝屏x00000024错误代码
- 北京方家胡同46号_百度百科
- 人脸识别眼睛定位算法
- AI首席架构师5-AICA-文心NLP大模型技术及应用
- java 静态调用非静态方法_java中静态方法中调用非静态方法的详解
- 我的第一份实习!!!