C Program to Swap Major and Minor Diagonals of a Matrix

  • Write a C program to swap major diagonal and minor diagonal of a square matrix.
  • WAP to interchange diagonal elements of a square matrix.

Required Knowledge

This program takes a square matrix as input from user and swaps the element of major and minor diagonals.
For Example:

Input Matrix
1 2 3
4 5 6
7 8 9
Output Matrix
3 2 1
4 5 6
9 8 7

Algorithm to swap major and minor diagonal elements of a square matrix
Let inputMatrix is a square matrix of row and column dimension N.

  • For every row, we will swap the elements of major and minor diagonals.
  • In any row R, the major diagonal element will be at inputMatrix[R][R] and minor diagonal element will be at inputMatrix[R][COLS-R-1] where COLS is the total number of columns in square matrix inputMatrix.

C program to sort an array in increasing order using bubble sort

C Program to Swap Major and Minor Diagonals of a Matrix

/*
* C Program to interchange Major and Minor diagonals of a Matrix
*/
  
#include <stdio.h>
#include <conio.h>
  
int main(){
    int rows, cols, row, col, temp;
    int matrix[50][50];
     
    printf("Enter Rows and Columns of Square Matrix\n");
    scanf("%d %d", &rows, &cols);
      
    printf("Enter Matrix of size %dX%d\n", rows, cols);
      
    for(row = 0; row < rows; row++){
        for(col = 0; col < cols; col++){
            scanf("%d", &matrix[row][col]);
        }
    }
      
    /* Interchange Major and Minor diagonals of Matrix */
    for(row = 0; row < rows; row++) {  
        col = row;    
        temp = matrix[row][col];  
        matrix[row][col] = matrix[row][(cols-col)-1];  
        matrix[row][(cols-col)-1] = temp;  
    }  
      
    printf("Matrix After Swapping Diagonals\n");
    for(row = 0; row < rows; row++){
        for(col = 0; col < cols; col++){
            printf("%d ", matrix[row][col]);
        }
        printf("\n");
    }
     
    getch();
    return 0;
}

Output

Enter Rows and Columns of Square Matrix
3 3
Enter Matrix of size 3X3
1 2 3
4 5 6
7 8 9
Matrix After Swapping Diagonals
3 2 1
4 5 6
9 8 7