Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C sắp xếp hàng tăng, cột giảm của ma trận

Nhập ma trận m×n. Sắp xếp mỗi hàng theo thứ tự tăng dần, mỗi cột theo thứ tự giảm dần.

Giải thuật

  • Sắp hàng tăng: 3 vòng lặp i, j, k (j a[i][k]
  • Sắp cột giảm: 3 vòng lặp j, i, k (i
  • Dùng bản sao ma trận để giữ nguyên gốc cho mỗi phép sắp

Chương trình

#include <stdio.h>
void main() {
    int i, j, k, a, m, n, ma[10][10], mb[10][10];
    printf("Order (m n): "); scanf("%d %d", &m, &n);
    printf("Elements: "); for(i=0;i<m;i++) for(j=0;j<n;j++) { scanf("%d",&ma[i][j]); mb[i][j]=ma[i][j]; }
    // Sắp hàng tăng trên ma
    for(i=0;i<m;i++) for(j=0;j<n;j++) for(k=j+1;k<n;k++) if(ma[i][j]>ma[i][k]) { a=ma[i][j]; ma[i][j]=ma[i][k]; ma[i][k]=a; }
    // Sắp cột giảm trên mb
    for(j=0;j<n;j++) for(i=0;i<m;i++) for(k=i+1;k<m;k++) if(mb[i][j]

Kết quả

Input 3x4:
1 2 3 4
1 2 3 4
5 1 2 3
Rows ascending:
1 2 3 4
1 2 3 4
1 2 3 5
Columns descending:
5 2 3 4
1 2 3 4
1 1 2 3