问答题 请编一个函数void fun(int tt[M][N ], int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。 注意: 部分源程序存在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 给定源程序: #include #define M 3 #define N 4 void fun ( int tt[M][N], int pp[N] ) { } main( ) { int t [ M ][ N ]={{22,45, 56,30}, {19,33, 45,38}, {20,22, 66,40}}; int p [ N ], i, j, k; printf ( "The original data is : /n" ); for( i=0; i for( j=0; j printf ( "m", t[i][j] ); printf("/n"); } fun ( t, p ); printf( "/nThe result is:/n" ); for ( k = 0; k < N; k++ ) printf ( " M ", p[ k ] ); printf("/n"); NONO( ); }
【正确答案】void fun ( int tt[M][N], int pp[N] ) { int i,j, min, k ; for(i = 0 ; i < N ; i++) { min = tt[0][i] ; k = 0 ; for(j = 1 ; j < M ; j++) if(min > tt[j][i]) { /TAB min=tt[j][i] ; k = j ; } pp[i] = tt[k][i] ; } }
【答案解析】