不借助第三個變量,交換兩個變量值的3種方式


  今天在我們學校的OJ上做題,一道非常簡單的題,突然想試試能不能不借助第三個變量,交換兩個變量值。蒙出來一半了已經,好可惜。現在把方法寫在這里,希望以后不要忘記。

 1 void fun1()
 2 {
 3     int a = 10, b = 100;
 4 
 5     a = a + b;
 6     b = a - b;
 7     a = a - b; 
 8     printf("%d\n%d\n", a, b);
 9 }
10 
11 void fun2()
12 {
13     int a = 10, b = 100;
14     a = a * b;
15     b = a / b;
16     a = a / b;  
17     printf("%d\n%d\n", a, b);
18 }
19 
20 void fun3()
21 22     int a = 10, b=100;
23     a ^= b;//^異或相同為0,相異為1.
24     b ^= a;
25     a ^= b;
26     printf("%d\n%d\n", a, b);
27

感謝網友 https://blog.csdn.net/sinat_29173167/article/details/52904252 的思路。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM