6-4數組作為函數參數
//以下注釋,請根據程序的運行順序查看,此程序目的是替換指定數組中的最大元素 //看了各路大神的指正,以下更新之后的答案,跟著程序運行一步一步的走,并且還看不懂的同學私信,一起探討 #include?<stdio.h> void?a(int?arr[],int?value)//a(arr1[5],1) { ????int?max?=?arr[0];//max==arr[0]==arr1[0]==10 ????int?index?=?0; ????int?i; ????for(i=1;i<5;i++)//1,2,3,4,5(比較后不在執行) ????{ ????????if(arr[i]>max)//41>10,3>41,12>41,22>41 ????????{ ????????????max=arr[i];//max=41,不執行,不執行,不執行?????//將數組中較大的數賦值給max ????????????index?=?i;//index=1,不執行,不執行,不執行 ????????}???????????????? ????}?? ????arr[index]?=?value;//arr[index]==arr[1]==41=(賦值)1 }//這個函數運行完之后arr1[]={10,1,3,12,22} int?main() { ????int?arr1[5]?=?{10,41,3,12,22}; ????int?arr2[5]?=?{1,2,3,4,5}; ????int?i; ????a(arr1,arr2[0]);? ????for(i=0;i<5;i++) ????{ ????????printf("%d?",arr1[i]);???????????????? ????} ????return?0;???? }
謝謝大神解惑,解釋的越詳細越好,謝謝大神
2016-11-01
2016-11-01
//以下注釋,請根據程序的運行順序查看,此程序目的是替換指定數組中的最大元素
#include <stdio.h>
void a(int arr[],int value)//a(arr1[5],1)
{
? ? int max = arr[0];//max==arr[0]==arr1[0]==10
? ? int index = 0;
? ? int i;
? ? for(i=1;i<5;i++)//1,2,3,4,5(比較后不在執行)
? ? {
? ? ? ? if(arr[i]>max)//41>10,3>41,12>41,22>41
? ? ? ? {
? ? ? ? ? ? max=arr[i];//max=41,不執行,不執行,不執行 ? ? //將數組中較大的數賦值給max
? ? ? ? ? ? index = i;//index=1,不執行,不執行,不執行
? ? ? ? } ? ? ? ? ? ? ? ?
? ? } ?
? ? arr[index] = value;//arr[index]==arr[1]==10=(賦值)1
}//這個函數運行完之后arr1[]={10,1,3,12,22}
int main()
{
? ? int arr1[5] = {10,41,3,12,22};
? ? int arr2[5] = {1,2,3,4,5};
? ? int i;
? ? a(arr1,arr2[0]);?
? ? for(i=0;i<5;i++)
? ? {
? ? ? ? printf("%d ",arr1[i]); ? ? ? ? ? ? ? ?
? ? }
? ? return 0; ? ?
}