# Program to swap upper diagonal elements with lower diagonal elements of matrix.

• Difficulty Level : Easy
• Last Updated : 25 Jul, 2022

Given a square matrix, swap upper diagonal elements of matrix with lower diagonal elements of matrix.

Examples :

```Input:   2  3  5  6
4  5  7  9
8  6  4  9
1  3  5  6

Output:  2  4  8  1
3  5  6  3
5  7  4  5
6  9  9  6

Input:   1  2  3
4  5  6
7  8  9

Output:  1  4  7
2  5  8
3  6  9```
Recommended Practice

Below is the implementation of above idea :

## C++

 `// CPP Program to implement matrix``// for swapping the upper diagonal``// elements with lower diagonal``// elements of matrix.``#include ``#define n 4``using` `namespace` `std;` `// Function to swap the diagonal``// elements in a matrix.``void` `swapUpperToLower(``int` `arr[n][n])``{``    ``// Loop for swap the elements of matrix.``    ``for` `(``int` `i = 0; i < n; i++) {``        ``for` `(``int` `j = i + 1; j < n; j++) {``            ``int` `temp = arr[i][j];``            ``arr[i][j] = arr[j][i];``            ``arr[j][i] = temp;``        ``}``    ``}``    ` `    ``// Loop for print the matrix elements.``    ``for` `(``int` `i = 0; i < n; i++) {``        ``for` `(``int` `j = 0; j < n; j++)``            ``cout << arr[i][j] << ``" "``;``        ``cout << endl;``    ``}``}` `// Driver function to run the program``int` `main()``{``    ``int` `arr[n][n] = { { 2, 3, 5, 6 },``                    ``{ 4, 5, 7, 9 },``                    ``{ 8, 6, 4, 9 },``                    ``{ 1, 3, 5, 6 } };` `    ``// Function call``    ``swapUpperToLower(arr);``    ``return` `0;``}`

## Java

 `// java Program to implement matrix``// for swapping the upper diagonal``// elements with lower diagonal``// elements of matrix.``import` `java.io.*;` `class` `GFG``{``    ``static` `int` `n = ``4``;``    ` `    ``// Function to swap the diagonal``    ``// elements in a matrix.``    ``static` `void` `swapUpperToLower(``int` `arr[][])``    ``{``        ``// Loop for swap the elements of matrix.``        ``for` `(``int` `i = ``0``; i < n; i++)``        ``{``            ``for` `(``int` `j = i + ``1``; j < n; j++)``            ``{``                ``int` `temp = arr[i][j];``                ``arr[i][j] = arr[j][i];``                ``arr[j][i] = temp;``            ``}``        ``}``        ` `        ``// Loop for print the matrix elements.``        ``for` `(``int` `i = ``0``; i < n; i++)``        ``{``            ``for` `(``int` `j = ``0``; j < n; j++)``                ``System.out.print( arr[i][j] +``" "``);``                ``System.out.println();``        ``}``        ` `    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `main (String[] args)``    ``{``        ``int` `arr[][] = { { ``2``, ``3``, ``5``, ``6` `},``                        ``{ ``4``, ``5``, ``7``, ``9` `},``                        ``{ ``8``, ``6``, ``4``, ``9` `},``                        ``{ ``1``, ``3``, ``5``, ``6` `} };` `        ``// Function call``        ``swapUpperToLower(arr);``            ` `    ``}``}` `// This code is contributed by vt_m.`

## Python 3

 `# Python Program to implement matrix``# for swapping the upper diagonal``# elements with lower diagonal``# elements of matrix.` `# Function to swap the diagonal``# elements in a matrix.``def` `swapUpperToLower(arr):``    ``n ``=` `4``;``    ` `    ``# Loop for swap the elements``    ``# of matrix.``    ``for` `i ``in` `range``(``0``, n):``        ``for` `j ``in` `range``(i ``+` `1``, n):``            ``temp ``=` `arr[i][j];``            ``arr[i][j] ``=` `arr[j][i];``            ``arr[j][i] ``=` `temp;``        ` `    ``# Loop for print the matrix elements.``    ``for` `i ``in` `range``(``0``, n):``        ``for` `j ``in` `range``(``0``, n):``            ``print``(arr[i][j], end ``=` `" "``);``        ``print``(``" "``);``    ` `# Driver Code` `arr ``=` `[[``2``, ``3``, ``5``, ``6` `],[ ``4``, ``5``, ``7``, ``9` `],``       ``[``8``, ``6``, ``4``, ``9` `],[ ``1``, ``3``, ``5``, ``6` `]];` `# Function call``swapUpperToLower(arr);` `# This code is contributed``# by Shivi_Aggarwal`

## C#

 `// C# Program to implement matrix``// for swapping the upper diagonal``// elements with lower diagonal``// elements of matrix.``using` `System;` `class` `GFG``{``    ``static` `int` `n = 4;``    ` `    ``// Function to swap the diagonal``    ``// elements in a matrix.``    ``static` `void` `swapUpperToLower(``int` `[,]arr)``    ``{``        ``// Loop for swap the elements of matrix.``        ``for` `(``int` `i = 0; i < n; i++)``        ``{``            ``for` `(``int` `j = i + 1; j < n; j++)``            ``{``                ``int` `temp = arr[i, j];``                ``arr[i, j] = arr[j, i];``                ``arr[j, i] = temp;``            ``}``        ``}``        ` `        ``// Loop for print the matrix elements.``        ``for` `(``int` `i = 0; i < n; i++)``        ``{``            ``for` `(``int` `j = 0; j < n; j++)``                ``Console.Write(arr[i, j] +``" "``);``                ``Console.WriteLine();``        ``}``        ` `    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `Main ()``    ``{``        ``int` `[,]arr = {{ 2, 3, 5, 6 },``                      ``{ 4, 5, 7, 9 },``                      ``{ 8, 6, 4, 9 },``                      ``{ 1, 3, 5, 6 }};` `        ``// Function call``        ``swapUpperToLower(arr);``            ` `    ``}``}` `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

## Javascript

 ``

Output

```2 4 8 1
3 5 6 3
5 7 4 5
6 9 9 6
```

Time Complexity: O(N2)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up