独闷闷网

 找回密码
 立即注册
搜索
查看: 792|回复: 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, 2019-10-18 06:36 , Processed in 0.108620 second(s), 17 queries .

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