编程题
请编写一个函数void fun(int tt[M][N]),tt提向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中赋予。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <conio.h>
#include <stdio.h>
#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;
FILE *out;
printf ( "The original data is : \n" );
for( i=0; i<M; i++ ){
for( j=0; j<N; j++ )
printf ( "%6d", t[i][j] );
printf("\n");
}
fun ( t, p );
printf( "\nThe result is:\n" );
for ( k = 0; k < N; k++ )
printf ( " %4d ", p[ k ] );
printf("\n");
out = fopen("out.dat", "w");
for ( k = 0; k < N; k++ )
fprintf (out, "%d\n", p[ k ] );
fclose(out);
}
答案是:
vid fun(int tt[M][N] ,int pp[N])
{
int i,j,min;
for(j=0;j<N;j++)
{
min=tt[0][j];
for(i=0;i<M;i++)
{
if(tt[i][j]<min)
min=tt[i][j];
}
pp[j]=min;
}
}