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