關於數值交換的幾種方法
在大量的開發中常常會遇到需要交換兩個數值的問題,今天就給大家分享一些數值交換方面的方法:
第一種方法:
這也是大家最容易想到的方法,即利用中間變數達到交換兩個數的目的,具體如下:
int tmp;
tmp = i1;
i1 = i2;
i2 = tmp;
這種方法執行效率是最低了
第二種方法:
利用數學中的運算技巧:
i1 = i1 + i2;i2 = i1 - i2;
i1 = i1 - i2;
這樣也可以實現兩個數的交換
第三種方法:
則是利用位運算中的異或來實現資料交換
i1 = i1 ^ i2;
i2 = i1 ^ i2;
i1 = i1 ^ i2;
這種方式的執行效率相對來說比較高。
原始碼如下:
#include <stdio.h>
void swap1(int i1,int i2)
{
int tmp;
tmp = i1;
i1 = i2;
i2 = tmp;
}
void swap2(int i1,int i2)
{
i1 = i1 + i2;
i2 = i1 - i2;
i1 = i1 - i2;
}
void swap3(int i1,int i2)
{
i1 = i1 ^ i2;
i2 = i1 ^ i2;
i1 = i1 ^ i2;
}
int main(void)
{
int i,j;
i = 3;
j = 5;
swap1(i,j);
printf("i = %d,j = %d\n",i,j);
i = 6;
j = 8;
swap1(i,j);
printf("i = %d,j = %d\n",i,j);
i = 2;
j = 7;
swap1(i,j);
printf("i = %d,j = %d\n",i,j);
return 0;
}
執行結果:
相關推薦
C語言交換兩個變數數值的幾種方法
因為經常見到這類題目,就自己總結了以下幾種辦法 1. 建立中間變數 這是最快也是最簡單的辦法,例如: #include<stdio.h> int main() { int a=10; int b=20; i
交換兩個數值的幾種方法
public class Remainder{ public static void main(String [] args){ /* 交換兩個數值 */ //使用臨時變數 i
SpringMVC獲得請求引數值的幾種方法
有不少同事在工作過程中,會遇到分不清如何獲得請求引數值的情況,明明自己測試過的介面是可以獲得引數的值的,而給第三方呼叫的時候就不可以,這些情況不甚列舉。下面博主就給大家詳細介紹SpringMVC獲得請求引數獲取的幾種方法。 首先介紹幾種常見的Requ
關於數值交換的幾種方法
在大量的開發中常常會遇到需要交換兩個數值的問題,今天就給大家分享一些數值交換方面的方法: 第一種方法: 這也是大家最容易想到的方法,即利用中間變數達到交換兩個數的目的,具體如下: int tmp; tmp = i1; i1 = i2;
數值交換的幾種方法
1、最簡單、最標準的一種方法,建立一個臨時變數int main() { //分別給兩個整型變數a,b賦值 int a = 45; int b = 66; //建立臨時變數c int c = 0; //列印交換前a,b的值 printf("a=%d b=%d\n"
Linux基礎------Shell數值計算的幾種方法
在Linux下總會遇到數值計算問題,由於Linux下變數都屬於弱變數,沒有變數型別的概念(貌似指令碼語言都是這樣)。 例如定義一個變數:x=1 此時的變數x預設是一個字串,即使看著像一個數字,所以當嘗試用如下的方法去進行計算的時候,得到的結果卻不是想要的 echo $x+=1
[日常練習] 4. 基於交換兩整形變數值的三種方法的C語言實現。
當面試題遇到:交換兩整形變數的值。你是感到無比的“慶幸”遇到這麼簡單的面試題,還是有一點“慌張”,怕是自己想的太簡單了吧!今天我們就來處理幾道小題,並且深入探討一下交換兩整形的3種C語言實現方法!當你再遇到這種問題的時候,你將一點都不慌!你,穩得一批! 練習題目: 1. 給定兩個整形
關於交換兩個變數值的三種方法
1,臨時變數法: temp=A; A=B; B=temp; 2,求差法: A=A-B; B=A+B; //B=A-B+B=A A=B-A; //A=A-A+B 3,異或法: A=A^B; B=A^B; //B=A^B^B=A A=A^B; //A=A^B^A=B 第一種方法最
交換兩個數的幾種方法
code alt pre temp emp 分享圖片 splay lin ons 第一種:利用第三方變量 1 int a = 10, b = 12; 2 int temp = 0; 3 temp = a; 4 a = b; 5 b = temp; 6 Console.W
Java基礎中Int型別變數值互換的幾種方法
在很多時候,我們會使用到將兩個整型變數值進行互換,比如氣泡排序,通過判斷來將陣列變數的值逐步交換,那麼怎麼交換值才能最有效最節省空間呢? 首先,我們會想到的,用一個零時變數來做中間的過度儲存空間,這是很容易想到的方法,實現如下: int i = 10; //宣告變數 i,並給 i 賦
php頁面傳遞引數值幾種方法總結
又搞了一個學期的php,就這樣吧。 php是一種伺服器的指令碼語言,他也是現在最為流行的WEB開發語言,下面我們來講述一下幾種上在php開發應用中常用的四種頁面之間傳遞引數的幾種方法。 第一種:使用客戶端瀏覽器的cookie。cookie很容易理解,就是一個臨時檔案,可以把它看成一個儲藏室,瀏
交換兩個整數數值的三種方法
如何交換兩個整數數值? 1.藉助第三個變數實現 (最常用的做法) int a = 100; int b = 200; int c; c = a; a = b;
線程同步的幾種方法
並且 word 進行 void 等待 輸出結果 每次 wait 無法訪問 用什麽關鍵字修飾同步方法 ? 用synchronized關鍵字修飾同步方法 同步有幾種實現方法,都是什麽?分別是synchronized,wait與notify wait():使一個線程處於等待狀
SQL Server遍歷表的幾種方法
都是 遍歷 lec delet -s rop itl 想要 temp 在數據庫開發過程中,我們經常會碰到要遍歷數據表的情形,一提到遍歷表,我們第一印象可能就想到使用遊標,使用遊標雖然直觀易懂,但是它不符合面向集合操作的原則,而且性能也比面向集合低。當然,從面向集合操作的角
Html中嵌套其他HTML文件的幾種方法(轉)
java mar net rip gin bsp ace wid style 給大家整理了3個方法,一個是HTML的iframe標簽,別兩個是JS引用。比如要在arr.html文件裏引用index.html文件,方法如下。 HTML引用方法: <iframe na
將HTML5封裝成android應用APK文件的幾種方法
android作為下一代的網頁語言,HTML5擁有很多讓人期待已久的新特性。HTML5的優勢之一在於能夠實現跨平臺遊戲編碼移植,現在已經有很多公司在移動 設備上使用HTML5技術。隨著HTML5跨平臺支持的不斷增強和智能手機的迅速普,HTML5技術有著非常好的發展前景,甚至有人預言HTML5將引燃 移動平臺遊
C#多線程的幾種方法
task start invoke 數組 erl method 並行計算 bsp nbsp 1、Theard2、TheardPool 線程池3、Task 在Theard上做了優化和改進,建議使用 .start();4、Task.Factory.Start(method)
Java中創建數組的幾種方法
java false 三種 數組下標 [1] [] 判斷 color str Java中創建數組的幾種方法 public static void main(String[] args) { //創建數組的第一種方法 int[] arr=new int[6]; int
克隆對象的幾種方法
克隆 type sharp class 以及 each pcl 反射 tor 克隆對象在開發過程中經常會遇到,有些時候需要淺克隆,有些時候需要深克隆,具體它們之間有什麽區別,以及實現方式有哪些,在這裏總結一下。 實現深克隆有以下幾種方法。 手動 代碼如下:
windows系統字體安裝使用的幾種方法
windows ps 字體簡易安裝方法:1、打開系統盤的 windows 下的 fonts 文件夾;2、用另一個窗口打開字體存放的文件夾;3、在存放字體的文件夾中選擇要安裝的字體(部分選或全選均可);4、用鼠標右鍵將所選字體拖到windows 下的 fonts 文件夾上,松開鼠標,在彈出的提示框上選擇