Reverse Diagonal elements of matrix

28 Apr, 2021
Given a square matrix of order n*n, we have to reverse the elements of both diagonals.Examples:  
Input : {1, 2, 3,
         4, 5, 6,
         7, 8, 9}
Output :{9, 2, 7,
         4, 5, 6,
         3, 8, 1}
Explanation: 
             Major Diagonal Elements before:  1 5 9
                             After reverse:   9 5 1
             Minor Diagonal Elements before:  3 5 7
                             After reverse:   7 5 3 
Input :{1,  2,  3,  4,
        5,  6,  7,  8,
        9,  10, 11, 12,
        13, 14, 15, 16}

Output :{16, 2, 3, 13,
         5, 11, 10, 8,
         9, 7,  6,  12,
         4, 14, 15, 1}
 
 
 
C++
Java
Python 3
C#
PHP
Javascript
#include <bits/stdc++.h>using namespace std;#define N 4 // Function to swap diagonals elementsvoid reverseDiagonal(int array[][N]){    int i = 0, j = N;       while (i < j) {         // For reversing elements of major        // diagonal.        swap(array[i][i], array[j - 1][j - 1]);         // For reversing elements of minor        // diagonal.        swap(array[i][j - 1], array[j - 1][i]);         i++;        j--;    }     // Print matrix after reversals.    for (int i = 0; i < N; ++i) {        for (int j = 0; j < N; ++j)            printf("%d  ", array[i][j]);        printf("\n");    }} // Driver functionint main(){    int matrix[N][N] = { 1, 2,  3,  4,                         5, 6,  7,  8,                         9, 10, 11, 12,                        13, 14, 15, 16 };    reverseDiagonal(matrix);         return 0;}
// Java Program to Reverse// Diagonal elements of matriximport java.io.*; class GFG{static int N = 4; // Function to swap// diagonals elementsstatic void reverseDiagonal(int array[][]){    int i = 0, j = N;    int temp = 0;    while (i < j)    {         // For reversing elements        // of major diagonal.             temp = array[i][i];        array[i][i] = array[j - 1][j - 1];        array[j - 1][j - 1] = temp;         // For reversing elements        // of minor diagonal.         temp = array[i][j - 1];        array[i][j - 1] = array[j - 1][i];        array[j - 1][i] = temp;         i++;        j--;    }     // Print matrix after    // reversals.    for (i = 0; i < N; ++i)    {        for (j = 0; j < N; ++j)            System.out.print(array[i][j] + " ");            System.out.println();    }} // Driver Codepublic static void main (String[] args){    int matrix[][] = {{1, 2, 3, 4},                      {5, 6, 7, 8},                      {9, 10, 11, 12},                      {13, 14, 15, 16}};    reverseDiagonal(matrix);}} // This code is contributed// by anuj_67.
# Python3 Program to Reverse# Diagonal elements of matrix N = 4  # Function to swap diagonals elementsdef reverseDiagonal(array):     i = 0    j = N    while (i < j) :          # For reversing elements of major        # diagonal.        array[i][i], array[j - 1][j - 1] = array[j-1][j-1], array[i][i]          # For reversing elements of minor        # diagonal.        array[i][j - 1], array[j - 1][i] = array[j-1][i], array[i][j-1]          i += 1        j -= 1      # Print matrix after reversals.    for i in range(N):        for j in range( N):            print( array[i][j],end="  ")        print()  # Driver functionif __name__ == "__main__":         matrix = [[ 1, 2,  3,  4],                        [5, 6,  7,  8],                        [9, 10, 11, 12],                        [13, 14, 15, 16 ]]    reverseDiagonal(matrix)
// C# Program to Reverse// Diagonal elements of matrixusing System; class GFG{static int N = 4; // Function to swap// diagonals elementsstatic void reverseDiagonal(int [,]array){    int i = 0, j = N;    int temp = 0;    while (i < j)    {         // For reversing elements        // of major diagonal.             temp = array[i, i];        array[i, i] = array[j - 1, j - 1];        array[j - 1, j - 1] = temp;         // For reversing elements        // of minor diagonal.         temp = array[i, j - 1];        array[i, j - 1] = array[j - 1, i];        array[j - 1, i] = temp;         i++;        j--;    }     // Print matrix after    // reversals.    for (i = 0; i < N; ++i)    {        for (j = 0; j < N; ++j)            Console.Write(array[i, j] + " ");            Console.WriteLine();    }} // Driver Codepublic static void Main (){    int [,]matrix = {{1, 2, 3, 4},                     {5, 6, 7, 8},                     {9, 10, 11, 12},                     {13, 14, 15, 16}};    reverseDiagonal(matrix);}} // This code is contributed// by anuj_67.
<?php// PHP Program to Reverse// Diagonal elements of matrix // Function to swap// diagonals elementsfunction reverseDiagonal($array){    $N = 4;    $i = 0; $j = $N;    $temp = 0;    while ($i < $j)    {         // For reversing elements        // of major diagonal.             $temp = $array[$i][$i];        $array[$i][$i] = $array[$j - 1][$j - 1];        $array[$j - 1][$j - 1] = $temp;         // For reversing elements        // of minor diagonal.         $temp = $array[$i][$j - 1];        $array[$i][$j - 1] = $array[$j - 1][$i];        $array[$j - 1][$i] = $temp;         $i++;        $j--;    }     // Print matrix after    // reversals.    for ($i = 0; $i < $N; ++$i)    {        for ($j = 0; $j < $N; ++$j)            echo $array[$i][$j] . " ";            echo "\n";    }} // Driver Code$matrix = array(array(1, 2, 3, 4),                array(5, 6, 7, 8),                array(9, 10, 11, 12),                array(13, 14, 15, 16));                 reverseDiagonal($matrix); // This code is contributed// by Akanksha Rai
<script> // JavaScript Program to Reverse// Diagonal elements of matrixlet N = 4; // Function to swap// diagonals elementsfunction reverseDiagonal(array){    let i = 0, j = N;    let temp = 0;    while (i < j)    {         // For reversing elements        // of major diagonal.             temp = array[i][i];        array[i][i] = array[j - 1][j - 1];        array[j - 1][j - 1] = temp;         // For reversing elements        // of minor diagonal.         temp = array[i][j - 1];        array[i][j - 1] = array[j - 1][i];        array[j - 1][i] = temp;         i++;        j--;    }     // Print matrix after    // reversals.    for (i = 0; i < N; ++i)    {        for (j = 0; j < N; ++j)            document.write(array[i][j] + " ");            document.write("<br>");    }} // Driver Code     let matrix = [[1, 2, 3, 4],                    [5, 6, 7, 8],                    [9, 10, 11, 12],                    [13, 14, 15, 16]];    reverseDiagonal(matrix);  // This code is contributed// by sravan kumar Gottumukkala </script>
16  2  3  13  
5  11  10  8  
9  7  6  12  
4  14  15  1
 
vt_m
ukasp
Akanksha_Rai
sravankumar8128
Matrix
School Programming
Matrix
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Unique paths in a Grid with Obstacles
Find median in row wise sorted matrix
Traverse a given Matrix using Recursion
Zigzag (or diagonal) traversal of Matrix
A Boolean Matrix Question
Python Dictionary
Reverse a string in Java
Arrays in C/C++
Introduction To PYTHON
Interfaces in Java