C語言交換兩個變數的值的5種基本方法
C語言交換兩個變數的值的5種基本方法
1. 臨時變數法
建立一個臨時變數,用來作為傳遞值的中介
#include<stdio.h>
int main()
{
int a=1, b=2, temp;
temp = a;
a = b;
b = temp;
printf("%d %d", a, b);
return 0;
}
2. 加減交換法
先將a+b的值儲存在a中,然後用更改後的a和初始b的值進行減法就可以得到交換後的b的值,即a
#include<stdio.h>
int main()
{
int a=1, b=2;
a = a+b;
b = a-b; //b = (a+b)-b = a
a = a-b; //a = (a+b)-a = b
printf("%d %d", a, b);
return 0;
}
3. 乘除交換法
跟加減交換法類似,只是將加減改為了乘除,但因此也引發了一個缺點:如果a,b的值過大,則可能導致越界,溢位
#include<stdio.h>
int main()
{
int a=1, b=2;
a = a*b;
b = a / b; //b = (a*b)/ b = a
a = a / b; //a = (a*b)/ a = b
printf("%d %d", a, b);
return 0;
}
4. 異域交換法
先將a ^ b的值儲存到a中,然後a ^ b ^ b = a,可以把a的值的傳給b
#include<stdio.h>
int main()
{
int a=1, b=2;
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("%d %d", a, b);
return 0;
}
5. 移位交換法
將int型別的a的值拆分為高16位和低16位,將分出來的一個16位作為暫存空間,即temp的作用
#include<stdio.h>
int main()
{
int a=1, b=2;
a <<= 16;
a |= b;
b = a >> 16;
a = a & 0xffff;
printf("%d %d", a, b);
return 0;
}
相關文章
- c語言 - 交換兩個變數(不建立臨時變數)兩種方法C語言變數
- 【C語言】給定兩個整型變數的值,將兩個值的內容進行交換C語言變數
- Swift交換兩個變數的值Swift變數
- 如何交換兩個變數的值變數
- C++ 引用 (交換兩個數的值)C++
- 不使用臨時變數交換兩個變數的值變數
- C++取反交換兩個數的值C++
- php不用第三個變數,交換兩個數的值PHP變數
- js不使用第三個變數交換兩個變數的值JS變數
- 不用第三個變數,直接交換兩個變數的值變數
- C++ 一種交換兩個數的思路C++
- 面試題-JavaScript交換兩個變數的方法面試題JavaScript變數
- C的兩個數值交換(Android之JNI)Android
- 如何不使用臨時變數,交換兩個變數的值。變數
- 三種交換變數的方法變數
- JavaScript兩個變數交換值(不使用臨時變數)JavaScript變數
- 交換兩個變數變數
- 數值變數交換常用方法變數
- 不用第三個變數,交換變數的值變數
- 交換兩個整型變數變數
- 異或運算的巧用 → 不用額外的變數,如何交換兩個變數的值?變數
- 交換兩個資料的三種方法
- python 交換兩個變數的方式Python變數
- 【c語言】求兩個數中不同的位的個數C語言
- 【c語言】期望輸出str = hello world 的兩種方法C語言
- C語言基礎 求出兩個數的公約數C語言
- C語言學習 兩個數的平方和C語言
- 兩個數換值四種方法實現
- c語言輸出100!的數值中的0的個數C語言
- 各個程式語言語言的檔案/函式/變數的命名方法函式變數
- go語言變數的宣告與賦值Go變數賦值
- 總結了幾個在PHP開發時怎麼交換兩個變數的賦值PHP變數賦值
- C 語言是怎樣實現儲存一個 PHP5 的變數?PHP變數
- C語言輸入一個數輸出對應的值C語言
- go語言變數宣告後的預設值Go變數
- C語言_指標變數的賦值與運算,很詳細C語言指標變數賦值
- C++變數總結束 | 輸出各種變數的值C++變數
- JavaScript實現兩個數的交換JavaScript