C語言:多維陣列做函式引數
阿新 • • 發佈:2019-02-01
任務程式碼:
(1)用多維陣列名做函式引數:
#include <stdio.h> int max_value(int array[][4]); int main( ) { int b[3][4]={{1,2,3,4},{5,6,7,8},{9,13,14,23}}; printf("max value is %d\n",max_value(b)); 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; }
(2)
#include <stdio.h> int max_value(int array[][4],int);//實際工程裡面應該將行數作為形似引數 int main( ) { int b[3][4]={{1,2,3,4},{5,6,7,8},{9,13,14,23}}; printf("max value is %d\n",max_value(b,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)三個學生四門課,計算總平均分,並輸出第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);//指標陣列,是一個數組,裡面存的是指標 printf("輸入查詢第幾位同學成績:"); int n; scanf("%d",&n); search(score,n); return 0; } void average(int *p,int n)//這裡*p其實就是指向陣列的指標,也可以是p[],只不過p[]中存的是地址 { int *p_end,sum=0,aver; p_end=p+n-1; for(;p<p_end;p++) { sum=sum+(*p); } aver=sum/n; printf("平均成績是:%4d\n",aver); } void search(int (*p)[4],int n) { int i; printf("NO.%d :",n); for(i=0;i<4;i++) { printf("%4d",*(*(p+n)+i));//這種有利於找第n行直接 } printf("\n"); }
知識總結: (1)注意在二維陣列宣告定義的時候,行數可以不定義但是列數一定要明確! 因為二維陣列可以看作是一維陣列,所以列數代表了元素的個數,長度是必須要明確的! (2)
(3)
(3)