C語言 swap交換值的方式
C語言 swap交換值的方式
方式一:(中間值)
void swap(int *x, int *y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
方式二:(異或)
void swap(int *x, int *y)
{
*x ^= *y;
*y ^= *x;
*x ^= *y;
}
方式三:(先合計,後減)
void swap(int *x, int *y)
{
*x = *x + *y;
*y = *x - *y;
*x = *x - *y;
}
方式四:(數學上)
void swap(int *x, int *y)
{
*x = *x + *y - (*y = *x);
}
相關推薦
C語言 swap交換值的方式
C語言 swap交換值的方式 方式一:(中間值) void swap(int *x, int *y) { int temp; temp = *x; *x = *y; *y = temp; } 方式二:(異或) void swap(int *
C語言中交換兩個陣列的值
昨天我們做了交換兩個變數的值,今天我們來看看如何交換兩個陣列的值(陣列內數的個數相同)。 我們可以這樣考慮,陣列不過是數的集合,既然我們會交換兩個數的值,那麼陣列只不過是多次交換兩個數的值,而且陣列內素下標又是依次增大的,所以這裡可以使用一個for迴圈。
C語言中交換兩個整數的值之傳值呼叫和傳址呼叫
在C語言中,一說到交換兩個整數的值,大家第一反應可能是這樣的程式碼。定義一個第三方變數來輔助交換。 #include<stdio.h> int main() { int n
C語言實驗——交換兩個整數的值(順序結構)
Problem Description 交換兩個變數的值,由終端輸入兩個整數給變數x、y,然後交換x和y的值後,輸出x和y。 Input 從鍵盤輸入兩個整數變數x和y; Output 在交換x、y的值後將x和y輸出! Example Input 4 6
C語言中的輸入方式
讀取 緩沖區 lock 回車 scanf() spa sdn enter 回車符 在c語言中,有gets()、scanf()、getchar()等輸入方式,但是不同的方式處理的方式不同。 scanf()讀取時遇見tab、space、enter時會結束讀取,不會舍棄最後的回車
實現基於C語言的二值圖像連通域標記算法
ror mem main hair return pop incr one get 實現基於C語言的二值圖像連通域標記算法 1 #include <stdio.h> 2 #include <stdarg.h> 3 #include &l
實現基於C語言的二值影象連通域標記演算法
實現基於C語言的二值影象連通域標記演算法 1 #include <stdio.h> 2 #include <stdarg.h> 3 #include <stddef.h> 4 #include <stdlib.h> 5 #includ
C語言關於交換數值的一些內容
1.交換兩個數的值 關於交換數值在很多程式裡都有體現,以下程式都體現了交換的作用,通常交換兩個數可以用第三個變數來轉換。 #include <stdio.h> #include <stdlib.h> int main(){ int a = 2; int b =
1863 Problem A C語言-數字交換
問題 A: C語言-數字交換 時間限制: 1 Sec 記憶體限制: 128 MB 提交: 326 解決: 102 [提交][狀態][討論版][命題人:外部匯入] 題目描述 輸入10個整數,將其中最小的數與
hash表--c語言 字串鍵值配對——(key, value)
c語言鍵值配對——(key, value) 看一個C++專案時,其中解析配置文的部分引發了我的思考。 配置檔案問普通字元檔案,內容都是類似 如下: ipaddr=127.0.0.1 port=888 logfile=log C++對此配置檔案解析字
C語言函式返回值的實現方法和誤區
例項:你們認為這三個函式能正常返回嗎? int func1(int a , int b) { int c = 0; c = a + b; return c; } char * func2() { char *strTmp = "abs"; return str
C語言 數值交換的三種方法
一、程式設計思想 (1)通過建立第三個變數來交換數值; (2)不建立變數,通過加減的方式交換(PS:如果倆個數值過大,則可能會溢位) (3)不建立變數,通過異或操作符交換(最高效簡潔,不會溢位,是1、2的升級) ——異或的思想 將數值以ASCII碼的形式,按二進
C語言,交換兩變數數值,而不引入第三個變數
菜鳥教程上看見的,真神奇,不過那個異或符號不知道怎麼打出來 #include<stdio.h> int main( ) { unsigned int a=60; //0011 1100 unsigned int b=13;
C語言:最值問題
求最值問題 1.輸入n個整數,求最大值,最小值和平均值 #include<stdio.h> int main() { int i, avg = 0, max = 0, min = 0, n, k; printf("請
C語言之賦值運算中型別轉換的陷阱!
在用C編寫微控制器的程式時,在採集處理資料時,總會出現一些不正常的資料。經過數次的排查,發現大部分的問題都出現在賦值時的型別轉換問題上。C語言在賦值時的型別轉換問題是很隱蔽的,經常性地會被忽略,而這又會導致致命性的錯誤。弄清楚C語言的型別轉換的規則,至關重要!
C語言:最值之差
題目: #include <stdio.h> int main() { int n,a[10000],i=0,max,min,t; scanf("%d",&n); while(scanf("%d",&a[i])!=EOF) i++; max=
C語言:以二進位制方式列印資料
程式碼: #include <stdio.h> #include <string.h> #include <stdlib.h> void decToBin(int num) { if(num>0) { decToBin(num/2);
ACMNO.37 C語言-數字交換 輸入10個整數,將其中最小的數與第一個數對換,然後把最大的數與最後一個數對換。寫三個函式; ①輸入10個數;②進行處理;③輸出10個數。
題目描述 輸入10個整數,將其中最小的數與第一個數對換,然後把最大的數與最後一個數對換。 寫三個函式; ①輸入10個數;②進行處理;③輸出10個數。 輸入 10個整數 輸出 整理後的十個數,每個數後跟一個空格(注意最後一個數後也有空格) 樣例輸入 2 1
山東理工大學ACM平臺題答案 1170 C語言實驗——最值
C語言實驗——最值 Time Limit: 1000ms Memory limit: 65536K 有疑問?點這裡^_^ 題目描述 有一個長度為n的整數序列。請寫一個程式,把序列中的最小
關於C語言中交換兩個數的程式碼探討
#include <stdio.h> // There is no need to allocate the third position for temp void reverse_a