C Program for Program to Interchange Diagonals of Matrix
Last Updated :
20 Oct, 2023
Write a C program for a given square matrix of order n*n, the task is to interchange the elements of both diagonals.
Examples :
Input : matrix[][] = {1, 2, 3,
4, 5, 6,
7, 8, 9}
Output : matrix[][] = {3, 2, 1,
4, 5, 6,
9, 8, 7}
Input : matrix[][] = {4, 2, 3, 1,
5, 7, 6, 8,
9, 11, 10, 12,
16, 14, 15, 13}
Output : matrix[][] = {1, 2, 3, 4,
5, 6, 7, 8,
9, 10, 11, 12,
11, 14, 15, 16}
Approach:
Idea behind interchanging diagonals of a square matrix is simple. Iterate from 0 to n-1 and for each iteration you have to swap a[i][i] and a[i][n-i-1].
Below in the implementation of the above approach:
C
#include <stdio.h>
#define N 3
void interchangeDiagonals( int array[N][N])
{
for ( int i = 0; i < N; ++i)
if (i != N / 2) {
int temp = array[i][i];
array[i][i] = array[i][N - i - 1];
array[i][N - i - 1] = temp;
}
for ( int i = 0; i < N; ++i) {
for ( int j = 0; j < N; ++j)
printf ( " %d" , array[i][j]);
printf ( "\n" );
}
}
int main()
{
int array[N][N]
= { { 4, 5, 6 }, { 1, 2, 3 }, { 7, 8, 9 } };
interchangeDiagonals(array);
return 0;
}
|
Time Complexity: O(N*N), as we are using nested loops for traversing the matrix.
Auxiliary Space: O(1), as we are not using any extra space.
Please refer complete article on Program to Interchange Diagonals of Matrix for more details!
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...