独闷闷网

 找回密码
 立即注册
搜索
查看: 2380|回复: 3
打印 上一主题 下一主题
收起左侧

[原创] C语言程序,两个数据交换,不用第三方变量,仅仅用两个变量如何实现?已解答。

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-10 13:31:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 jianhong_wu 于 2015-4-11 13:07 编辑

问:
C语言程序,两个数据交换,不用第三方变量,仅仅用两个变量如何实现?

伟仔-肇庆:
a=a+b;b=a-b;a=a-b;

坚鸿-深圳:
妙呀。

转眼十年-西安:
方法很多,思路就是能够两个变量a,b能够保存a或b或 a与b的和或差或积或商中的任意两个。这样就可以还原出a与b的值。但是不建议使用积或者商,这样会导致出错。单片机里边最好的办法就是用异或。这样
a = a ^ b;
b = a ^ b;
a = a ^ b;

乐于分享,勇于质疑!
沙发
发表于 2015-4-10 13:42:15 | 只看该作者
妙,,,就是得注意溢出
乐于分享,勇于质疑!
板凳
发表于 2015-4-10 22:23:54 | 只看该作者
方法很多,思路就是能够两个变量a,b能够保存a或b或 a与b的和或差或积或商中的任意两个。这样就可以还原出a与b的值。但是不建议使用积或者商,这样会导致出错。单片机里边最好的办法就是用异或。这样
a = a ^ b;
b = a ^ b;
a = a ^ b;
乐于分享,勇于质疑!
地板
发表于 2015-4-10 22:51:50 | 只看该作者
转眼十年未谋面 发表于 2015-4-10 22:23
方法很多,思路就是能够两个变量a,b能够保存a或b或 a与b的和或差或积或商中的任意两个。这样就可以还原出a ...

很好,学习了
乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2024-4-20 22:59 , Processed in 0.168656 second(s), 16 queries .

快速回复 返回顶部 返回列表