# Print all the super diagonal elements of the given square matrix

• Last Updated : 27 Apr, 2021

Given a square matrix mat[][] of size n * n. The task is to print all the elements which lie on the super-diagonal of the given matrix.
Examples:

Input: mat[][] = {
{1, 2, 3},
{3, 3, 4, },
{2, 4, 6}}
Output: 2 4
Input: mat[][] = {
{1, 2, 3, 4},
{3, 3, 4, 4},
{2, 4, 6, 3},
{1, 1, 1, 3}}
Output: 2 4 3

Approach: The super-diagonal of a square matrix is the set of elements that lies directly above the elements comprising the main diagonal. As for main diagonal elements, their indexes are like (i = j), for super-diagonal elements their indexes are as j = i + 1 (i denotes row and j denotes column).
Hence elements arr[0][1], arr[1][2], arr[2][3], arr[3][4], …. are the elements of super-diagonal.
Either traverse all elements of matrix and print only those where j = i + 1 which requires O(n2) time complexity or traverse only column from 1 to columnCount – 1 and print elements as arr[column – 1][column].
Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;``#define R 4``#define C 4` `// Function to print the super diagonal``// elements of the given matrix``void` `printSuperDiagonal(``int` `arr[R][C])``{``    ``for` `(``int` `i = 1; i < C; i++) {``        ``cout << arr[i - 1][i] << ``" "``;``    ``}``}` `// Driver code``int` `main()``{``    ``int` `arr[R][C] = { { 1, 2, 3, 4 },``                      ``{ 5, 6, 7, 8 },``                      ``{ 9, 10, 11, 12 },``                      ``{ 13, 14, 15, 16 } };` `    ``printSuperDiagonal(arr);` `    ``return` `0;``}`

## Java

 `// Java implementation of the approach``import` `java.io.*;` `class` `GFG``{``    ` `static` `int` `R = ``4``;``static` `int` `C = ``4``;` `// Function to print the sub diagonal``// elements of the given matrix``static` `void` `printSubDiagonal(``int` `arr[][])``{``    ``for` `(``int` `i = ``1``; i < C; i++)``    ``{``            ``System.out.print(arr[i-``1``][i] + ``" "``);``    ``}``}` `// Driver code``public` `static` `void` `main (String[] args)``{` `    ``int` `arr[][] = { { ``1``, ``2``, ``3``, ``4` `},``                    ``{ ``5``, ``6``, ``7``, ``8` `},``                    ``{ ``9``, ``10``, ``11``, ``12` `},``                    ``{ ``13``, ``14``, ``15``, ``16` `} };` `    ``printSubDiagonal(arr);` `}``}` `// This code is contributed by mohit kumar 29`

## Python3

 `# Python3 implementation of the approach` `R ``=` `4``C ``=` `4` `# Function to print the super diagonal``# elements of the given matrix``def` `printSuperDiagonal(arr) :` `    ``for` `i ``in` `range``(``1``, C) :``        ``print``(arr[i ``-` `1``][i],end``=` `" "``);` `# Driver code``if` `__name__ ``=``=` `"__main__"` `:``    ` `    ``arr ``=` `[ [ ``1``, ``2``, ``3``, ``4` `],``            ``[``5``, ``6``, ``7``, ``8` `],``            ``[ ``9``, ``10``, ``11``, ``12` `],``            ``[ ``13``, ``14``, ``15``, ``16` `]]``    ``printSuperDiagonal(arr);``    ` `# This code is contributed by AnkitRai01`

## C#

 `// C# implementation of the approach``using` `System;``    ` `lass GFG``{` `    ``static` `int` `R = 4;``    ``static` `int` `C = 4;` `    ``// Function to print the sub diagonal``    ``// elements of the given matrix``    ``static` `void` `printSubDiagonal(``int` `[,]arr)``    ``{``        ``for` `(``int` `i = 1; i < C; i++)``        ``{``                ``Console.Write(arr[i-1,i] + ``" "``);``        ``}``    ``}` `    ``// Driver code``    ``public` `static` `void` `Main (String[] args)``    ``{` `        ``int` `[,]arr = { { 1, 2, 3, 4 },``                        ``{ 5, 6, 7, 8 },``                        ``{ 9, 10, 11, 12 },``                        ``{ 13, 14, 15, 16 } };` `        ``printSubDiagonal(arr);``    ``}``}` `/* This code is contributed by PrinciRaj1992 */`

## Javascript

 ``

Output:

`2 7 12`

My Personal Notes arrow_drop_up