1. 程式人生 > >不借助第三個變量,交換兩個變量值的3種方式

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

int nat AS pri sdn 我們 感謝 方法 span

  今天在我們學校的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 的思路。

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