【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;
}