傳遞不同大小的陣列(多個不同陣列)運用同一函式

主程式傳遞不同陣列到同一函式,這邊用比大小來作範例,將陣列的名稱與大小分開來看,在主程式裡面我們呼叫函式時,就是要傳遞陣列名稱與陣列大小【範例maxn(v,3)】,v是陣列名稱(另一個),3是其陣列大小。
依照此規則就可以讓同一個函式給不同陣列大小使用【maxn(g,5)】。
函式需接收陣列與其大小,範例為【maxn(int x[ ],int y)】,v、g傳給x,3、5傳給y,屆時函式的x[0]就是v[0],依此類推如下:
主程式main的陣列v傳遞【maxn(v,3)】,maxn函式接收【maxn(int x[ ],int y)】
v[0]=x[0]
v[1]=x[1]
v[2]=x[2]

主程式main的陣列g傳遞【maxn(g,3)】,maxn函式接收【maxn(int x[ ],int y)】
g[0]=x[0]
g[1]=x[1]
g[2]=x[2]
g[3]=x[3]
g[4]=x[4]

練習範例:
#include<stdio.h>
int maxn(int[ ],int y);
int main(){
int i,n;
int v[3]={5,7,1};          //v[3],g[5]兩個不同陣列大小
int g[5]={2,10,8,6,9};
printf("v: %d\n",maxn(v,3));//呼叫函式並傳遞陣列名稱與大小
printf("g: %d\n",maxn(g,5));//同上
return 0;
}
int maxn(int x[ ],int y){
int max=x[0],j;
for(int j=0;j<y;++j){
if(x[j]>max){
max = x[j];
}
}
return max;
}

留言