C语言编程,求解
#define M 2
#define N 3
void printMatrix(int *a)
{
int i,j;
for(i=0;i<M;i++)
{
for (j=0;j<N;j++)
printf("%d ",*(a+N*i+j));
printf("\n");
}
}
int main()
{
int i,j,max,max_num;
int *a=(int*)malloc(M*N*sizeof(int));
int b[M]={0};
printf("输入%d个元素:\n",M*N);
for(i=0;i<M*N;i++)
scanf("%d",a+i);
printf("排序前数组a:\n");
printMatrix(a);
for (i=0;i<M*N-1;i++)
{
max=*(a+i);
max_num=i;
for (j=i;j<M*N-1;j++)
{
if(max<*(a+j+1))
{
max=*(a+j+1);
max_num=j+1;
}
}
if(max_num!=i)
{
*(a+max_num)=*(a+i);
*(a+i)=max;
}
}
printf("排序后数组a:\n");
printMatrix(a);
return 0;
}