//sắp xếp ma trận A mxn giảm dần từ trái qua phải đồng thời giảm dần từ trên xuống dưới.
//ma trận được cấp phát bộ nhớ động và tạo ngẫu nhiên bằng hàm rand();
#include<stdio.h>
#include<stdlib.h>
void xuat(int **a,int h,int c)
{
printf("\n\n");
for(int i=0;i<h;i++)
{
printf("\n\n");
for(int j=0;j<c;j++) printf("%-4d",a[i][j]);
}
printf("\n\n");
}
void sapxep(int *a,int h,int c)
{
for(int i=0;i<h*c-1;i++)
for(int j=i+1;j<h*c;j++)
if(a[i]<a[j]){int t=a[i];a[i]=a[j];a[j]=t;}
}
void matran(int **a,int h,int c)
{
int i,j,d=0,*b=(int*)malloc(h*c*sizeof(int));
for(i=0;i<h;i++)
for(j=0;j<c;j++) b[d++]=a[i][j];
sapxep(b,h,c);
d=0;
for(i=0;i<h;i++)
for(j=0;j<c;j++) a[i][j]=b[d++];
}
void main()
{
int h,c,i,j;
printf("nhap so hang, so cot:\n");
scanf("%d%d",&h,&c);
int **a=(int**)malloc(h*sizeof(int*));
for(i=0;i<h;i++) a[i]=(int*)malloc(c*sizeof(int));
for(i=0;i<h;i++)
for(j=0;j<c;j++) a[i][j]=rand()%100;
printf("ma tran da tao:\n");
xuat(a,h,c);
matran(a,h,c);
printf("ma tran sau khi sap xep:\n");
xuat(a,h,c);
}