Program to Interchange Diagonals of Matrix

24 May, 2022
Given a square matrix of order n*n, you have 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}
 
Explanation : 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].  
 
C++
C
Java
Python3
C#
Javascript
// C++ program to interchange// the diagonals of matrix#include<bits/stdc++.h>using namespace std; #define N 3 // Function to interchange diagonalsvoid interchangeDiagonals(int array[][N]){    // swap elements of diagonal    for (int i = 0; i < N; ++i)    if (i != N / 2)    swap(array[i][i], array[i][N - i - 1]);     for (int i = 0; i < N; ++i)    {    for (int j = 0; j < N; ++j)            cout<<" "<< array[i][j];    cout<<endl;    }} // Driver Codeint main(){    int array[N][N] = {4, 5, 6,                    1, 2, 3,                    7, 8, 9};    interchangeDiagonals(array);    return 0;} // This code is contributed by noob2000.
// C program to interchange// the diagonals of matrix#include<bits/stdc++.h>using namespace std; #define N 3 // Function to interchange diagonalsvoid interchangeDiagonals(int array[][N]){    // swap elements of diagonal    for (int i = 0; i < N; ++i)    if (i != N / 2)    swap(array[i][i], array[i][N - i - 1]);     for (int i = 0; i < N; ++i)    {    for (int j = 0; j < N; ++j)            printf(" %d", array[i][j]);    printf("\n");    }} // Driver Codeint main(){    int array[N][N] = {4, 5, 6,                    1, 2, 3,                    7, 8, 9};    interchangeDiagonals(array);    return 0;}
// Java program to interchange// the diagonals of matriximport java.io.*; class GFG{    public static int N = 3;         // Function to interchange diagonals    static void interchangeDiagonals(int array[][])    {        // swap elements of diagonal        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)                System.out.print(array[i][j]+" ");            System.out.println();        }    }         // Driver Code    public static void main (String[] args)    {        int array[][] = { {4, 5, 6},                        {1, 2, 3},                        {7, 8, 9}                        };        interchangeDiagonals(array);    }} // This code is contributed by Pramod Kumar
# Python program to interchange# the diagonals of matrixN = 3; # Function to interchange diagonalsdef interchangeDiagonals(array):     # swap elements of diagonal    for i in range(N):        if (i != N / 2):            temp = array[i][i];            array[i][i] = array[i][N - i - 1];            array[i][N - i - 1] = temp;             for i in range(N):        for j in range(N):            print(array[i][j], end = " ");        print(); # Driver Codeif __name__ == '__main__':    array = [ 4, 5, 6 ],[ 1, 2, 3 ],[ 7, 8, 9 ];    interchangeDiagonals(array);     # This code is contributed by Rajput-Ji
// C# program to interchange// the diagonals of matrixusing System; class GFG{    public static int N = 3;         // Function to interchange diagonals    static void interchangeDiagonals(int [,]array)    {        // swap elements of diagonal        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)                Console.Write(array[i, j]+" ");            Console.WriteLine();        }    }         // Driver Code    public static void Main ()    {        int [,]array = { {4, 5, 6},                        {1, 2, 3},                        {7, 8, 9}                        };        interchangeDiagonals(array);    }} // This code is contributed by vt_m.
<script>// Javascript program to interchange// the diagonals of matrixlet N = 3; // Function to interchange diagonalsfunction interchangeDiagonals(array){     // swap elements of diagonal    for (let i = 0; i < N; ++i)    if (i != parseInt(N / 2)) {        let temp = array[i][i];        array[i][i] = array[i][N - i - 1];        array[i][N - i - 1] = temp;    }    for (let i = 0; i < N; ++i)    {    for (let j = 0; j < N; ++j)            document.write(" " + array[i][j]);    document.write("<br>");    }} // Driver Code    let array = [[4, 5, 6],                    [1, 2, 3],                    [7, 8, 9]];    interchangeDiagonals(array); // This code is contributed by subham348.</script>
Output:  
 6 5 4
 1 2 3
 9 8 7
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.
This article is contributed by Shivam Pradhan (anuj_charm). If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above. 
vt_m
Rajput-Ji
Akanksha_Rai
subham348
noob2000
rohitkumarsinghcna
Matrix
Matrix
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.