不懂哎,那個學霸能給我解釋一下啊。
#include <stdio.h>
void replaceMax(int arr[],int value)
{
??? int max = arr[0];
??? int index = 0;
??? int i;
??? for(i=1;i<5;i++)
??? {
??????? if(arr[i]>max)
??????? {
??????????? max=arr[i];????????? //將數組中較大的數賦值給max
??????????? index = i;? //記錄當前索引
??????? }???????????????
??? }?
??? arr[index] = value;
}
int main()
{
??? int arr1[] = {10,41,3,12,22};
??? int arr2[] = {1,2,3,4,5};
??? int i;
??? replaceMax(arr1[0] , arr2[0]? ); //將數組arr1和數組arr2的第一個元素傳入函數中
??? for(i=0;i<5;i++)
??? {
??????? printf("%d ",arr1[i]);???????????????
??? }
??? return 0;???
}
2015-11-30
代碼應該是replaceMax(arr1,arr2[0]);
arr2[0]的數值和arr1[0]比大小,結果arr2[0] < arr1[0]? 所以直接arr[1] = 1,其他位置沒有變化
所以最后輸出的就是arr1 ,只是把arr1[1]的值替換成了arr2[0];