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++
- 三種交換變數的方法變數
- 如何不使用臨時變數,交換兩個變數的值。變數
- 交換兩個變數變數
- 異或交換兩個數的值
- 面試題-JavaScript交換兩個變數的方法面試題JavaScript變數
- 數值變數交換常用方法變數
- 不用第三個變數,交換變數的值變數
- 交換兩個整型變數變數
- 交換兩個資料的三種方法
- 異或運算的巧用 → 不用額外的變數,如何交換兩個變數的值?變數
- C++取反交換兩個數的值C++
- Python常用的四種數值交換方式!Python
- JavaScript實現兩個數的交換JavaScript
- Python面試技巧-交換兩個元素的值Python面試
- mysql交換兩行或兩列的值MySql
- C語言基礎 求出兩個數的公約數C語言
- c語言輸出100!的數值中的0的個數C語言
- C語言學習 兩個數的平方和C語言
- 各個程式語言語言的檔案/函式/變數的命名方法函式變數
- 換個角度帶你學C語言的基本資料型別C語言資料型別
- go語言變數的宣告與賦值Go變數賦值
- C 語言是怎樣實現儲存一個 PHP5 的變數?PHP變數
- C語言輸入一個數輸出對應的值C語言
- java基礎變數的交換Java變數
- C++程式語言的四個基本準則C++
- 透過交換指標變數的值改變大小數字的位置-學習筆記指標變數筆記
- C++變數總結束 | 輸出各種變數的值C++變數
- 呼叫函式實現兩個數交換函式
- 順序表的基本方法實現C語言版C語言
- 淺談Python變數賦值的三種方法!Python變數賦值
- 數倉的兩種輕量級資料交換格式:json與jsonbJSON
- 變更性別--使用if 交換值
- C語言兩結構體之間的成員互換C語言結構體