jianhong_wu 发表于 2015-4-10 13:31:26

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: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 ...

很好,学习了
页: [1]
查看完整版本: C语言程序,两个数据交换,不用第三方变量,仅仅用两个变量如何实现?已解答。