関数に配列を受け渡す

#include<stdio.h> 
#define NUMBER 5 
 
int max_of(int vc[],int no){ 
        int i; 
        int max = vc[0]; 
        for(i=1;i<no;i++){ 
                if(vc[i] > max){ 
                        max = vc[i]; 
                } 
        } 
        return max; 
} 
 
int main(void){ 
        int i; 
        int eng[NUMBER]; 
        int mat[NUMBER]; 
        int max_e,max_m; 
 
        printf("%d人の点数を入力してください。\n",NUMBER); 
        for(i=0;i<NUMBER;i++){ 
                do{ 
                        printf("[%d] 英語:",i+1); scanf("%d",&eng[i]); 
                        if(eng[i] < 0 || eng[i] > 100){ 
                                puts("点数は0以上100以下で入力してください。"); 
                        } 
                }while(eng[i] < 0 || eng[i] > 100); 
                do{ 
                        printf("     数学:");     scanf("%d",&mat[i]); 
                        if(mat[i] < 0 || mat[i] > 100){ 
                                puts("点数は0以上100以下で入力してください。"); 
                        } 
                }while(mat[i] < 0 || mat[i] > 100); 
        } 
        max_e = max_of(eng,NUMBER); 
        max_m = max_of(mat,NUMBER); 
 
        printf("英語の最高点=%d\n",max_e); 
        printf("数学の最高点=%d\n",max_m); 
 
        return 0; 
}