# Print all the sub 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 sub-diagonal of the given matrix.
Examples:

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

Approach: The sub-diagonal of a square matrix is the set of elements that lie directly below the elements comprising the main diagonal. As for main diagonal elements, their indexes are like (i = j), for sub-diagonal elements their indexes are as i = j + 1 (i denotes row and j denotes column).
Hence elements arr[1][0], arr[2][1], arr[3][2], arr[4][3], …. are the elements of sub-diagonal.
Either traverse all elements of matrix and print only those where i = j + 1 which requires O(n2) time complexity or print traverse only row from 1 to rowCount – 1 and print elements as arr[row][row – 1].
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 sub diagonal``// elements of the given matrix``void` `printSubDiagonal(``int` `arr[R][C])``{``    ``for` `(``int` `i = 1; i < R; i++) {``        ``cout << arr[i][i - 1] << ``" "``;``    ``}``}` `// Driver code``int` `main()``{``    ``int` `arr[R][C] = { { 1, 2, 3, 4 },``                      ``{ 5, 6, 7, 8 },``                      ``{ 9, 10, 11, 12 },``                      ``{ 13, 14, 15, 16 } };` `    ``printSubDiagonal(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 < R; i++)``    ``{``            ``System.out.print(arr[i][i - ``1``] + ``" "``);``    ``}``}` `// 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 ajit.`

## Python3

 `# Python3 implementation of the approach``R ``=` `4``C ``=` `4` `# Function to print the sub diagonal``# elements of the given matrix``def` `printSubDiagonal(arr):` `    ``for` `i ``in` `range``(``1``, R):``        ``print``(arr[i][i ``-` `1``], end ``=` `" "``)` `# Driver code``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`

## C#

 `// C# implementation of the approach``using` `System;``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 < R; i++)``        ``{``                ``Console.Write(arr[i, i - 1] + ``" "``);``        ``}``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `Main ()``    ``{``        ``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 CodeMech.`

## Javascript

 ``

Output:

`5 10 15`

My Personal Notes arrow_drop_up