2012-03-06 56 views
-3

可能重复:
Swap the values of two variables without using third variable交换两个变量,而无需使用第三个变量作为中介位置

写一个程序,交换两个变量,而无需使用第三可变作为中介 位置。

a=2; b=3; 
a=a*b; // 6 
b=a/b; // 2 
a=a/b; // 3 
a=3 and b=2 

????这是真的,,,我对此非常

+0

作业?你可以看一下在网络上的解决方案。经典的一个使用XOR。 – 2012-03-06 09:13:29

+0

你可以对你的问题/错误有更详细的了解吗? – Cameron 2012-03-06 09:14:36

+0

你将遇到0值问题 – xitx 2012-03-06 09:14:39

回答

0

错误,如果B或A是零,会发生什么?如果两者都不为零,并且您没有得到该类型的溢出,那么您的代码将起作用。

0

更好地使用没有“奇点”的可逆运算符。如+-(假设整数的wraparounds都ok。

,当然,获胜者是XOR。

a ^= b; 
b ^= a; 
a ^= b; 
相关问题