- 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
- C printf and scanf functions
- Two dimensional matrix in C
- For loop in C
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 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