我們之前做過倆個變數的值的交換,這次的題目是將倆個陣列的內容交換,其本質是一樣的。眾所周知,陣列中的值是不可以通過賦值來交換的。不同在於我們需要遍歷陣列,將陣列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 ...