學習任何語言基礎時,兩個數值得交換是必須掌握的,下面是3種不同的方式(c語言)
方法一:利用數學的計算技巧
1 #include <stdio.h>
2 int main()
3 {
4
5 int a =10, b = 20;
6
7 printf("交換前a=%d, b=%d\n", a, b);
8
9 a = a - b;
10 b = a + b;
11 a = b - a;
12
13 printf("交換後a=%d, b=%d\n", a, b);
14
15 return 0;
16 }
這種方法的寫法不唯一,對于a,b;隻要先給其中一個先賦予a-b,其他的自己算一下就能寫出來;
方法二:第三方變量,也是最常用,可讀性最好的
1 #include <stdlib.h>
2 #include <stdio.h>
3 int main()
4 {
5
6 int a =10, b = 20;
7 printf("交換前a=%d, b=%d\n", a, b);
8
9 int temp = a;//先定義一個臨時變量
10 a = b;
11 b = temp;
12
13 printf("交換後a=%d, b=%d\n", a, b);
14
15 return 0;
16 }
方法三:位運算,利用^異或運算的特點:a^b^a = a^a^b = 0^b = b,交換律,相同數值異或為0,0和任何數異或為任何數
1 #include <stdio.h>
2 int main()
3 {
4 int a =10, b = 20;
5 printf("交換前a=%d, b=%d\n", a, b);
6
7 a = a^b;
8 b = b^a;
9 a = a^b;
10
11 printf("交換後a=%d, b=%d\n", a, b);
12
13 return 0;
14 }