该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

来源一:比特网 来源二:东方锐智

这是个很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语言数据交换的几种方法相关推荐

  1. 数据导出到excel文件给客户端下载的几种方法

    (原创)datagrid数据导出到excel文件给客户端下载的几种方法 看到这个觉得这个人很厉害,mvp啊. 我就改成这个样子了.  Response.Clear();         Respons ...

  2. 在ML中缺乏数据可是个大问题,亲测有效的5种方法帮您解决

    https://www.toutiao.com/a6701193162699833859/ 在我做过的很多项目中,公司虽然有非常棒的AI商业创意,但当他们意识到自己没有足够的数据时,却会慢慢的变得沮丧 ...

  3. Database之SQLSever:SQLSever数据表管理(GUI法/SQL语句命令法两种方法实现建立表、修改表,以及增、删、改、查)之详细攻略

    Database之SQLSever:SQLSever数据表管理(GUI法/SQL语句命令法两种方法实现建立表.修改表,以及增.删.改.查)之详细攻略 目录 一.两种方法建立表.修改表,插入多条数据记录 ...

  4. 在java中的交换方法有哪些_java中交换两个变量的值有哪几种方法,交换两个变量a和b的值...

    java中交换两个变量的值有哪几种方法在Java中,有哪些方法可以交换两个变量的值, 方法: 1.定义临时变量 2.没有必要定义临时变量 3.使用位运算符 (学习视频分享:java课程) 代码示例: ...

  5. xis表格怎么打印_Excel表格过大,如何将数据打印在一张A4纸上?3种方法帮你搞定...

    原标题:Excel表格过大,如何将数据打印在一张A4纸上?3种方法帮你搞定 我们在工作时候,经常会打印Excel表,不知道你在打印Excel时候有没有遇到这样的情况,因为Excel表格过大,无法在一张 ...

  6. dwr框架查看外放方法_硬核!教你三种方法,实现微信自定义修改地区!

    前几天,有小伙伴问怎样自定义修改微信地区?当时说的第二天分享,结果在录制第二种方法的时候,突发意外,出现"微信以停止运行"的状况,明明早上还好好的,怎么就打不开了呢?也木有做任何操 ...

  7. Vue父组件访问子组件属性和方法、父子组件双向绑定(两种方法)

    Vue父组件访问子组件属性和方法.父子组件双向绑定(两种方法) 1. 使用vue-cli创建项目 目录结构如下图: 2. 编写代码 src/components/HelloWorld.vue < ...

  8. ABB机器人选项包,密钥,三种方法,真实、虚拟、密钥三种方法

    ABB机器人选项包,密钥,三种方法,真实.虚拟.密钥三种方法,有教程.有软件.也有密钥 YID:75188661261334891

  9. html整体页面缩放的方法,html5中让页面缩放的4种方法

    1.viewport 这种方法,不是所有的浏览器都兼容 2.百分比 这种方法,可以兼容大部分浏览器,但是修改幅度比较大 .main .login .txt1{margin-top:8.59375%; ...

  10. linux c语言乘法口诀,shell 脚本实现乘法口诀表的两种方法——shell与C语言

    shell 脚本实现乘法口诀表的两种方法--shell与C语言 话不多说直接给出代码(执行c语言时没有gcc编译器会报错的哦!): 1 #!/bin/bash 2 if [ $# -eq 0 ] 3 ...

最新文章

  1. 我的世界java版gamemode指令_我的世界切换生存和创造模式的命令是什么?
  2. NRF52810能不能替代NRF52832
  3. H264码流的两种形式:Annex B和AVCC
  4. ubuntu_ftp_server配置方法
  5. Linux shell 操作命令 mkdir
  6. 台式计算机计量单位,计算机的计量单位以及常见的数据类型
  7. linux监测node进程,通过node_exporter监控linux服务器一
  8. 男朋友的回答可以多敷衍?
  9. netty冲突 play sbt_《Netty官方文档》本地传输接口
  10. php随机关键词,php实现向含html文本内容随机位置插入关键词
  11. mysql 外键设置
  12. 淄博计算机文化基础试卷,我校顺利举办省高校计算机文化基础考试并获佳绩
  13. 零基础学启发式算法(4)-模拟退火 (Simulated Annealing)
  14. 毕业设计 - 题目 :基于大数据的疫情数据分析及可视化系统
  15. 求大佬解决0x00881340 处有未经处理的异常(在 ConsoleApplication1.exe 中): 0xC0000005: 写入位置 0x00993B8C 时发生访问冲突。
  16. 安装配置limesurvey
  17. Windows注册表详解
  18. firefly-rk3288点mipi屏TV080WUM-NL0有显示无背光
  19. flex布局实现骰子六面的示例
  20. 因一个 Bug,谷歌、GitHub、亚马逊等网站全球大范围宕机!

热门文章

  1. Web前端线上系统课-01-HTML+CSS/08-结构伪类-图形-字体-字体图标-元素定位
  2. 【C语言】详解atoi函数
  3. html编写四则运算,JavaScript实现四则运算
  4. python安装0x80072ee7_商店错误代码0x80072EE7 教你win10商店错误代码0x80072EE7的解决方法...
  5. 系统蓝屏x00000024错误代码
  6. 北京方家胡同46号_百度百科
  7. 人脸识别眼睛定位算法
  8. AI首席架构师5-AICA-文心NLP大模型技术及应用
  9. java 静态调用非静态方法_java中静态方法中调用非静态方法的详解
  10. 我的第一份实习!!!