C語言基礎:兩個變量交換值的方法


學習任何語言基礎時,兩個數值得交換是必須掌握的,下面是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 }

 


免責聲明!

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



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