Lập trình C: Cách sắp xếp mảng 2 chiều
Giải phóng thời gian, khai phóng năng lực
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; }
Giải phóng thời gian, khai phóng năng lực