求矩阵的行,列最大和最小

【12.7】(编程题)把M×N矩阵a的元素逐列按降序排列。假设M、N不超过3。分别编写求一维数组元素值最大和元素值最小的函数,主函数中初始化一个二维数组a[3][3],调用定义的两函数输出每行、每列的最大值和最小值。程序文件名:ex12_7.c。


#include<stdio.h>

int Max(int *a,int len)
{
    int max=a[0];
    for(int i=1;i<len;i++)
        if(a[i]>max)max=a[i];    

    return max;
}

int Min(int *a,int len)
{
    int min=a[0];
    for(int i=1;i<len;i++)
        if(a[i]<min)min=a[i];        

    return min;
}

#define M 3
#define N 3
int main()
{
    int a[M][N]={{1,2,3},{4,5,6},{7,8,9}};
    int t;

    for(int i=0;i<M;i++)
        printf("%d %d \n",Max(&a[i],N),Min(&a[i],N));

    for(int i=0;i<M;i++) //行列互换
        for(int j=0;j<i;j++)
        {
            t=a[i][j];
            a[i][j]=a[j][i];
            a[j][i]=t;
        }

    for(int i=0;i<M;i++)
        printf("%d %d \n",Max(&a[i],N),Min(&a[i],N));    

    return 0;
}