问答题
请编一个函数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] ;
}
}