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

Chương trình C hoán đổi đường chéo chính và phụ của ma trận vuông

Hoán đổi phần tử đường chéo chính (i,i) với đường chéo phụ (i, n-i-1) của ma trận vuông. Nếu không vuông → báo lỗi.

Giải thuật

  • Kiểm tra m == n
  • Với i từ 0 đến m-1: hoán đổi a[i][i] và a[i][m-i-1]

Chương trình

#include <stdio.h>
main() {
    int i, j, m, n, a, ma[10][10];
    printf("Order m x n: "); scanf("%dx%d", &m, &n);
    if (m == n) {
        printf("Elements: "); for(i=0;i<m;i++) for(j=0;j<n;j++) scanf("%d",&ma[i][j]);
        printf("Original:\n"); // in ma trận
        for(i=0;i<m;i++) { a=ma[i][i]; ma[i][i]=ma[i][m-i-1]; ma[i][m-i-1]=a; }
        printf("After swap diagonals:\n"); // in ma trận
    } else printf("Not a square matrix\n");
}

Kết quả

Run 1: 3x3 [[1,2,3],[4,5,6],[7,8,9]] → [[3,2,1],[4,5,6],[9,8,7]]
Run 2: 4x3 → Not a square matrix