將倆個陣列的內容交換

2021-09-19 17:11:12 字數 1518 閱讀 5669

我們之前做過倆個變數的值的交換,這次的題目是將倆個陣列的內容交換,其本質是一樣的。眾所周知,陣列中的值是不可以通過賦值來交換的。不同在於我們需要遍歷陣列,將陣列1與陣列2中的內容一一進行交換。和之前一樣,我們有倆種方法。

因為我們倆種方法的主函式是一致的,這樣我們就可以根據倆個方法建立倆個函式,在主函式中直接呼叫,就可以減少好多任務作量啦!

方法一:建立臨時變數

#include#includevoid changearray(int arr1, int arr2)

}int main() //主函式

; int arr2[5] = ;

int i, j;

printf("before arr1: ");

for (i = 0; i < 5; i++)

printf("\n");

printf("before arr2: ");

for (j = 0; j < 5; j++)

printf("\n");

changearray(arr1, arr2);

int m; int n;

printf("after arr1: ");

for (m = 0; m < 5; m++)

printf("\n");

printf("after arr2: ");

for (n = 0; n < 5; n++)

printf("\n");

system("pause");

return 0;

}

方法二:異或法

#include#includevoid changearray(int arr1, int arr2)

}int main() //主函式

; int arr2[5] = ;

int i, j;

printf("before arr1: ");

for (i = 0; i < 5; i++)

printf("\n");

printf("before arr2: ");

for (j = 0; j < 5; j++)

printf("\n");

changearray(arr1, arr2);

int m; int n;

printf("after arr1: ");

for (m = 0; m < 5; m++)

printf("\n");

printf("after arr2: ");

for (n = 0; n < 5; n++)

printf("\n");

system("pause");

return 0;

}

編寫程式中遇到的問題:

追求完美的程式,就要求我們在標準輸出格式中下功夫,鑑於目前程式功能不完整,所以力求整潔明了,所以我在輸出格式中做了一些調整,使輸出介面更美觀。

交換倆個數

首先來看下面一段 include 傳值呼叫 include void swap int x,int y int main 結果 他並沒有交換a和b的值,原因是,形式引數只是實際引數的臨時拷貝,實參與形參位址是不一樣的,實參的值傳遞給形參,在函式中形參的值交換了,但是在函式返回過程期間形參值已經銷毀,...

不用中間變數實現倆個數交換

第一類方法也是常用的方法,通過多次的數值計算來完成交換,到現在知道的有下面三種 1 加減法。a a b b a b a a b 該方法可以交換整型和浮點型數值的變數,但在處理浮點型的時候有可能出現精度的損失,例如對資料 a 3.123456 b 1234567.000000 交換後各變數值變為 a ...

將陣列A中的內容和陣列B中的內容進行交換

將陣列a中的內容和陣列b中的內容進行交換 方法一 將陣列中的數乙個乙個進行交換,然後通過for進行函式的輸出。include include int main int b for i 0 i 5 i for i 0 i 5 i printf n for i 0 i 5 i system pause ...