1. Video hướng dẫn:
2. Bài viết hướng dẫn:
///Bài toán: Hãy nhập vào một mảng dữ liệu 2 chiều rồi sắp xếp
///theo trật tự tăng, giảm?
void nhapLieu(float arr[][50],int* soHang,int* soCot){
int i,j;
do{
printf("\nMoi nhap so hang: ");
scanf("%d",&*soHang);
}while(!(0<*soHang && *soHang<50));
do{
printf("\nMoi nhap so cot: ");
scanf("%d",&*soCot);
}while(!(0<*soCot && *soCot<50));
puts("\nMoi ban nhap lieu cho mang:");
for(i=0; i<*soHang; i++){
for(j=0; j<*soCot; j++){
printf("\narr[%d][%d] = ",i,j);
scanf("%f",&arr[i][j]);
}
}
}
void hienThi(float arr[][50],int soHang,int soCot){
int i,j;
puts("\nDu lieu mang:");
for(i=0; i<soHang; i++){
for(j=0; j<soCot; j++){
printf("\n%g",arr[i][j]);
}
}
}
void sapXepTang(float arr[][50],int soHang,int soCot){
int i,j;
float tg;
float mangtg[soHang*soCot];
for(i=0; i<soHang*soCot; i++){///trước tiên cần gán các phần tử
///của mảng 2 chiều cho mảng 1 chiều
mangtg[i]=arr[i/soCot][i%soCot];
}
///Sau đó tiến hành sắp xếp mảng 1 chiều
for(i=0; i<soHang*soCot-1; i++){
for(j=soHang*soCot-1; j>i; j--){
if(mangtg[i]>mangtg[j]){
tg=mangtg[i];
mangtg[i]=mangtg[j];
mangtg[j]=tg;
}
}
}
///Cuối cùng gán ngược lại mảng 1 chiều cho mảng 2 chiều
for(i=0; i<soHang*soCot; i++){
arr[i/soCot][i%soCot]=mangtg[i];
}
}
void sapXepGiam(float arr[][50],int soHang,int soCot){
int i,j;
float tg;
float mangtg[soHang*soCot];
for(i=0; i<soHang*soCot; i++){///trước tiên cần gán các phần tử
///của mảng 2 chiều cho mảng 1 chiều
mangtg[i]=arr[i/soCot][i%soCot];
}
///Sau đó tiến hành sắp xếp mảng 1 chiều
for(i=0; i<soHang*soCot-1; i++){
for(j=soHang*soCot-1; j>i; j--){
if(mangtg[i]<mangtg[j]){
tg=mangtg[i];
mangtg[i]=mangtg[j];
mangtg[j]=tg;
}
}
}
///Cuối cùng gán ngược lại mảng 1 chiều cho mảng 2 chiều
for(i=0; i<soHang*soCot; i++){
arr[i/soCot][i%soCot]=mangtg[i];
}
}
main(){
float arr[50][50];
int soHang,soCot;
nhapLieu(arr,&soHang,&soCot);
sapXepTang(arr,soHang,soCot);
puts("\nSap xep tang:");
hienThi(arr,soHang,soCot);
sapXepGiam(arr,soHang,soCot);
puts("\nSap xep giam:");
hienThi(arr,soHang,soCot);
return 0;
}