19.编一函数fun(int[][N],int[]),tt指向一个M行N列的二维数组,求二维数组每列中最小元素,并依次放入pp所指一维数组中,二维数组中的数已在主函数中赋予 /*编一函数fun(int[][N],int[]),tt指向一个M行N列的二维数组, *求二维数组每列中最小元素,并依次放入pp所指一维数组中, *二维数组中的数已在主函数中赋予 */ #include <stdio.h> /*声明常量M,N的值,分别代表行和列*/ #define M 3 #define N 4 /*声明函数fun求二维数组每列中最小元素*/ void fun(int[][N],int[]); main() { /*a,b控制行和列*/ int tt[M][N]={22,45,56,30,19,33,45,38,20,22,66,40},pp[N],a,b; printf("the original data is:\n"); /*打印原二维数组*/ for(a=0;a<=M-1;a++) { for(b=0;b<=N-1;b++) printf("%d\t",tt[a][b]); printf("\n"); } /*应用函数求二维数组每列中最小元素*/ fun(tt,pp); printf("the result is:\n"); /*打印结果pp[b]*/ for(b=0;b<=N-1;b++) printf("%d\t",pp[b]); printf("\n"); return(0); } /*定义函数fun求二维数组每列中最小元素*/ void fun(int tt[][N],int pp[]) { /*a,b控制行和列,min存储每列最小元素*/ int a,b,min; /*同一列中循环*/ for(b=0;b<=N-1;b++) { /*同一行中循环*/ for(a=0;a<=M-1;a++) { if(a==0) min=tt[a][b]; else if(tt[a][b]<tt[a-1][b]) min=tt[a][b]; } /*将列最小值存于pp[b]中*/ pp[b]=min; } } 运行效果如图:
|
|