C语言及程序设计提高例程-36 多维数组作函数参数

    xiaoxiao2026-05-07  11

    贺老师教学链接  C语言及程序设计提高 本课讲解

    用多维数组名作函数参数

    #include <stdio.h> int max_value(int array[][4]); int main( ) { int a[3][4]= {{11,32,45,67},{22,44,66,88},{15,72,43,37}}; printf("max value is %d\n", max_value(a)); return 0; } int max_value(int array[][4]) { int i,j,max; max=array[0][0]; for( i=0; i<3; i++) for(j=0; j<4; j++) if(array[i][j]>max) max=array[i][j]; return max; } 工程中更普遍的做法:行数作为形参 #include <stdio.h> int max_value(int array[][4], int); int main( ) { int a[3][4]= {{11,32,45,67},{22,44,66,88},{15,72,43,37}}; printf("max value is %d\n", max_value(a, 3)); return 0; } int max_value(int array[][4], int n) { int i,j,max; max=array[0][0]; for( i=0; i<n; i++) for(j=0; j<4; j++) if(array[i][j]>max) max=array[i][j]; return max; } 例  3个学生4门课,计算总平均分,并输出第n个学生成绩 #include <stdio.h> void average(int *p, int n); void search(int (*p)[4], int n); int main() { int score[3][4]= { {65,67,79,60},{80,87,90,81}, {90,99,100,98} }; average(*score,12); search(score,2); return 0; } void average(int *p, int n) { int *p_end, sum=0,aver; p_end=p+n-1; for(; p<=p_end; p++) sum=sum+(*p); aver=sum/n; printf("average=M\n",aver); } void search(int (*p)[4], int n) { int i; printf("No.%d :",n); for(i=0; i<4; i++) printf("M",*(*(p+n)+i)); printf("\n"); }

    最新回复(0)