Dịch lên xoay vòng ma trận #include #include #include #define MAX 100 void NhapMang(int a[][MAX], int &dong, int &cot) { //Nhập số dòng { printf("\nNhap vao so dong: "); // Cách tà đạo: scanf("dong =%d",&dong); // Lúc nhập phải viết thêm scanf("%d",&dong); if(dong < || dong > MAX) { printf("\nSo dong khong hop le Xin kiem tra lai!"); } }while(dong < || dong > MAX); //Nhập số cột { printf("\nNhap vao so cot: "); chữ ( dong = ) khung console scanf("%d",&cot); if(cot < || cot > MAX) { printf("\nSo cot khong hop le Xin kiem tra lai!"); } }while(cot < || cot > MAX); for(int i = 0; i < dong; i++) { for(int j = 0; j < cot; j++) { printf("\nNhap a[%d][%d] = ", i, j); scanf("%d", &a[i][j]); } } } void XuatMang(int a[][MAX], int dong, int cot) { for(int i = 0; i < dong; i++) { for(int j = 0; j < cot; j++) { printf("%4d", a[i][j]); } printf("\n\n"); } } /* Cách 1: dùng thêm mảng phụ, lưu lại hàng đầu, gán từ xuống Cuối gán mảng vào hàng cuối */ void DichLenXoayVongCacHangTrongMaTran(int a[][MAX], int dong, int cot) { // Gán mảng phụ vào hàng đầu int temp[MAX]; for(int i = 0; i < cot; i++) { temp[i] = a[0][i]; } // Gán từ xuống for(int i = 0; i < dong - 1; i++) { for(int j = 0; j < cot; j++) { a[i][j] = a[i + 1][j]; } } // Dùng mảng phụ lưu lại hàng cuối for(int i = 0; i < cot; i++) { a[dong - 1][i] = temp[i]; } } // Cách 2:Hoán vị hàng tử xuống void HoanVi(int &a, int &b) { int temp = a; a = b; b = temp; } void HoanVi2Dong(int a[][MAX], int dong, int cot, int dong1, int dong2) { if((dong1 >= && dong1 < dong) && (dong2 >= && dong2 < dong)) { for(int j = 0; j < cot; j++) { HoanVi(a[dong1][j], a[dong2][j]); } } } void DichLenXoayVongCacHangTrongMaTran_Cach2(int a[][MAX], int dong, int cot) { for(int i = 0; i < dong - 1; i++) { for(int j = 0; j < cot; j++) { HoanVi(a[i][j], a[i + 1][j]); } } } int main() { int a[MAX][MAX], dong, cot; int cot1, cot2; NhapMang(a, dong, cot); XuatMang(a, dong, cot); DichLenXoayVongCacHangTrongMaTran_Cach2(a, dong, cot); printf("\nMa tran sau dich len xoay vong cac hang: \n"); XuatMang(a, dong, cot); getch(); return 0; }