独闷闷网

标题: C语言程序,两个数据交换,不用第三方变量,仅仅用两个变量如何实现?已解答。 [打印本页]

作者: jianhong_wu    时间: 2015-4-10 13:31
标题: C语言程序,两个数据交换,不用第三方变量,仅仅用两个变量如何实现?已解答。
本帖最后由 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
妙,,,就是得注意溢出
作者: 转眼十年未谋面    时间: 2015-4-10 22:23
方法很多,思路就是能够两个变量a,b能够保存a或b或 a与b的和或差或积或商中的任意两个。这样就可以还原出a与b的值。但是不建议使用积或者商,这样会导致出错。单片机里边最好的办法就是用异或。这样
a = a ^ b;
b = a ^ b;
a = a ^ b;
作者: 又一个暑假    时间: 2015-4-10 22:51
转眼十年未谋面 发表于 2015-4-10 22:23
方法很多,思路就是能够两个变量a,b能够保存a或b或 a与b的和或差或积或商中的任意两个。这样就可以还原出a ...

很好,学习了




欢迎光临 独闷闷网 (http://www.dumenmen.com/) Powered by Discuz! X3.2