# Program to Print Matrix in Z form

• Difficulty Level : Basic
• Last Updated : 30 Nov, 2022

Given a square matrix of order n*n, we need to print elements of the matrix in Z form

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

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

Input: [[4, 5, 6, 8, 5],
[1, 2, 3, 1, 4],
[7, 8, 9, 4, 7],
[1, 8, 7, 5, 2],
[7, 9, 5, 6, 9],
[9, 4, 5, 6, 6]]

Output: 4 5 6 8 5
1
9
8
7
9 4 5 6 6```

We need to traverse the first row of the matrix then the second diagonal and then the last row.

Implementation:

## C++

 `// CPP program to print a square matrix in Z form``#include ``using` `namespace` `std;``const` `int` `MAX = 100;` `// Function to print a square matrix in Z form``void` `printZform(``int` `mat[][MAX], ``int` `n)``{``    ``// print first row``    ``for` `(``int` `i = 0; i < n; i++)``        ``cout << mat[0][i] << ``" "``;` `    ``// Print second diagonal``    ``int` `i = 1, j = n - 2;``    ``while` `(i < n && j >= 0)``    ``{``        ``cout << mat[i][j] << ``" "``;``        ``i++;``        ``j--;``    ``}` `    ``// Print last row``    ``for` `(``int` `i = 1; i < n; i++)``        ``cout << mat[n - 1][i] << ``" "``;``}` `// Driver function``int` `main()``{``    ``int` `mat[][MAX] = { { 4, 5, 6, 8 },``                       ``{ 1, 2, 3, 1 },``                       ``{ 7, 8, 9, 4 },``                       ``{ 1, 8, 7, 5 } };``    ``printZform(mat, 4);``    ``return` `0;``}`

## Java

 `// Java program to print a``// square matrix in Z form` `import` `java.io.*;``import` `java.lang.*;` `class` `GFG {``    ``public` `static` `void` `diag(``int` `arr[][], ``int` `n)``    ``{``        ``int` `i = ``0``, j, k;` `        ``// print first row``        ``for` `(j = ``0``; j < n - ``1``; j++) {``            ``System.out.print(arr[i][j] + ``" "``);``        ``}` `        ``// Print diagonal``        ``k = ``1``;``        ``for` `(i = ``0``; i < n - ``1``; i++) {``            ``for` `(j = ``0``; j < n; j++) {``                ``if` `(j == n - k) {``                    ``System.out.print(arr[i][j] + ``" "``);``                    ``break``;``                ``}``            ``}``            ``k++;``        ``}``        ``// Print last row``        ``i = n - ``1``;``        ``for` `(j = ``0``; j < n; j++)``            ``System.out.print(arr[i][j] + ``" "``);` `        ``System.out.print(``"\n"``);``    ``}` `    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `a[][] = { { ``4``, ``5``, ``6``, ``8` `},``                      ``{ ``1``, ``2``, ``3``, ``1` `},``                      ``{ ``7``, ``8``, ``9``, ``4` `},``                      ``{ ``1``, ``8``, ``7``, ``5` `} };` `        ``diag(a, ``4``);``    ``}``}` `// Code contributed by Mohit Gupta_OMG <(0_o)>`

## Python3

 `# Python Program to print a Square``# Matrix in Z form.`  `# Function to print Matrix in Z form``def` `Z_print(Test_list):` `    ``Result ``=` `[]  ``# Empty list to Store Final Result` `    ``# To find the difference b/w whole matrix and first elements``    ``diff ``=` `len``(Test_list)``-``len``(Test_list[``0``])` `    ``# Loop to find elements for Z form and to print it.``    ``for` `i ``in` `range``(``len``(Test_list)):` `        ``# If the elements if First or Last then print it as it is...``        ``if` `i ``=``=` `0` `or` `i ``=``=` `len``(Test_list)``-``1``:``            ``Result.append(Test_list[i])``            ``Result ``=` `Result[``0``]``            ``print``(``*``Result)``            ``Result ``=` `[]``        ``else``:``            ``Result.append(Test_list[i][``len``(Test_list)``-``i``-``1``-``diff])``            ``a ``=` `Result[``0``]``            ``# Give require spaces for printing elements...``            ``print``(``"  "` `*` `(``len``(Test_list)``-``i``-``1``-``diff) ``+` `str``(a))``            ``Result ``=` `[]  ``# Empty list again for storing next pattern` `    ``return` `Result`  `# Driver Function``if` `__name__ ``=``=` `"__main__"``:``    ``Test_list1 ``=` `[[``4``, ``5``, ``6``, ``8``],``                  ``[``1``, ``2``, ``3``, ``1``],``                  ``[``7``, ``8``, ``9``, ``4``],``                  ``[``1``, ``8``, ``7``, ``5``]]``    ``Z_print(Test_list1)  ``# Passing Matrix to Z_print function`

## C#

 `// C# program to print a square``// matrix in Z form``using` `System;` `class` `GFG {` `    ``public` `static` `void` `printZform(``int``[, ] mat, ``int` `n)``    ``{` `        ``int` `i, j;` `        ``// print first row``        ``for` `(i = 0; i < n; i++) {``            ``Console.Write(mat[0, i] + ``" "``);``        ``}` `        ``// Print diagonal``        ``i = 1;``        ``j = n - 2;` `        ``while` `(i < n && j >= 0) ``// print diagonal``        ``{``            ``Console.Write(mat[i, j] + ``" "``);``            ``i++;``            ``j--;``        ``}` `        ``// Print last row``        ``for` `(i = 1; i < n; i++)``            ``Console.Write(mat[n - 1, i] + ``" "``);``    ``}` `    ``// Driver code``    ``public` `static` `void` `Main()``    ``{``        ``int``[, ] mat = { { 4, 5, 6, 8 },``                        ``{ 1, 2, 3, 1 },``                        ``{ 7, 8, 9, 4 },``                        ``{ 1, 8, 7, 5 } };` `        ``printZform(mat, 4);``    ``}``}` `// This code is contributed by vt_m.`

## PHP

 `= 0)``    ``{``        ``echo` `\$mat``[``\$i``][``\$j``] , ``" "``;``        ``\$i``++;``        ``\$j``--;``    ``}` `    ``// Print last row``    ``for` `( ``\$i` `= 1; ``\$i` `< ``\$n``; ``\$i``++)``        ``echo` `\$mat``[``\$n` `- 1][``\$i``] , ``" "``;``}``    ` `    ``// Driver Code``    ``\$mat` `= ``array``(``array``(4, 5, 6, 8),``                 ``array``(1, 2, 3, 1),``                 ``array``(7, 8, 9, 4),``                 ``array``(1, 8, 7, 5));``    ``printZform(``\$mat``, 4);``    ` `// This code is contributed by anuj_67.``?>`

## Javascript

 ``

Output

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

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

Alternatively, we can print first row and second diagonal except last element and then last row.

## C++14

 `// CPP program to print a square matrix in Z form``#include ``using` `namespace` `std;``const` `int` `MAX = 100;` `// Function to print a square matrix in Z form``void` `printZform(``int` `mat[][MAX], ``int` `n)``{``    ``int` `i;``    ``// print first row except last element``    ``for` `(i = 0; i < n-1; i++)``        ``cout << mat[0][i] << ``" "``;` `    ``// Print second diagonal except last element``    ``for``(i=0;i

## Java

 `// Java program to print a square matrix in Z form` `public` `final` `class` `GFG {``    ``public` `static` `int` `MAX = ``100``;` `    ``// Function to print a square matrix in Z form``    ``public` `static` `void` `printZform(``int``[][] mat, ``int` `n)``    ``{``        ``int` `i;` `        ``// print first row except last element``        ``for` `(i = ``0``; i < n - ``1``; i++) {``            ``System.out.print(mat[``0``][i]);``            ``System.out.print(``" "``);``        ``}` `        ``// Print second diagonal except last element``        ``for` `(i = ``0``; i < n - ``1``; i++) {``            ``System.out.print(mat[i][n - i - ``1``]);``            ``System.out.print(``" "``);``        ``}` `        ``// Print last row``        ``for` `(i = ``0``; i < n; i++) {``            ``System.out.print(mat[n - ``1``][i]);``            ``System.out.print(``" "``);``        ``}``    ``}` `    ``// Driver function``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int``[][] mat = { { ``4``, ``5``, ``6``, ``8` `},``                        ``{ ``1``, ``2``, ``3``, ``1` `},``                        ``{ ``7``, ``8``, ``9``, ``4` `},``                        ``{ ``1``, ``8``, ``7``, ``5` `} };``        ``printZform(mat, ``4``);``    ``}``}` `// This code is contributed by Aarti_Rathi`

## Python3

 `# Python program to print a square matrix in Z form` `# Function to print a square matrix in Z form``def` `printZform(mat, n):``    ` `    ``# print first row except last element``    ``for` `i ``in` `range``(n ``-` `1``):``        ``print``(mat[``0``][i], end``=``" "``)` `    ``# Print second diagonal except last element``    ``for` `i ``in` `range``(n ``-` `1``):``        ``print``(mat[i][n``-``i``-``1``], end``=``" "``)` `    ``# Print last row``    ``for` `i ``in` `range``(n):``        ``print``(mat[n ``-` `1``][i], end``=``" "``)` `# Driver function``mat ``=` `[ [``4``, ``5``, ``6``, ``8` `],``                ``[ ``1``, ``2``, ``3``, ``1` `],``                ``[ ``7``, ``8``, ``9``, ``4` `],``                ``[ ``1``, ``8``, ``7``, ``5` `] ];``printZform(mat, ``4``)` `# This code is contributed by Samim Hossain Mondal.`

## C#

 `// C# program to print a square matrix in Z form``using` `System;` `public` `static` `class` `GFG {``  ``public` `static` `int` `MAX = 100;` `  ``// Function to print a square matrix in Z form``  ``public` `static` `void` `printZform(``int``[, ] mat, ``int` `n)``  ``{``    ``int` `i;` `    ``// print first row except last element``    ``for` `(i = 0; i < n - 1; i++) {``      ``Console.Write(mat[0, i]);``      ``Console.Write(``" "``);``    ``}` `    ``// Print second diagonal except last element``    ``for` `(i = 0; i < n - 1; i++) {``      ``Console.Write(mat[i, n - i - 1]);``      ``Console.Write(``" "``);``    ``}` `    ``// Print last row``    ``for` `(i = 0; i < n; i++) {``      ``Console.Write(mat[n - 1, i]);``      ``Console.Write(``" "``);``    ``}``  ``}` `  ``// Driver function``  ``public` `static` `void` `Main()``  ``{``    ``int``[, ] mat = { { 4, 5, 6, 8 },``                   ``{ 1, 2, 3, 1 },``                   ``{ 7, 8, 9, 4 },``                   ``{ 1, 8, 7, 5 } };``    ``printZform(mat, 4);``  ``}``}` `// This code is contributed by Aarti_Rathi`

## Javascript

 `// JavaScript program to print a square``// matrix in Z form`` ` `function` `printZform(mat, n)``{``    ``var` `i=0, j;``    ` `    ``// print first row except last element``        ``for` `(i = 0; i < n - 1; i++) {``           ``document.write(mat[0][i] + ``" "``);``        ``}`` ` `        ``// Print second diagonal except last element``        ``for` `(i = 0; i < n - 1; i++) {``            ``document.write(mat[i][n - i - 1] + ``" "``);``        ``}`` ` `        ``// Print last row``        ``for` `(i = 0; i < n; i++) {``            ``document.write(mat[n - 1][i] + ``" "``);``        ``}``    ``}``  ` `// Driver code``var` `mat = [ [ 4, 5, 6, 8 ],``            ``[ 1, 2, 3, 1 ],``            ``[ 7, 8, 9, 4 ],``            ``[ 1, 8, 7, 5 ] ];``printZform(mat, 4);` `// This code is contributed by Aarti_Rathi`

Output

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

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

Alternate Simpler Implementation:

Thanks to Aathishithan for suggesting this.

Implementation:

## C++14

 `#include``using` `namespace` `std;``#define MAX 100` `// C++ program to print a``// square matrix in Z form``void` `diag(``int` `arr[][MAX],``int` `n)``{``        ``int` `i = 0, j, k;``        ``for``(i = 0;i < n;i++){``           ``for``(j = 0;j < n;j++){``              ``if``(i == 0)``                ``cout<

## Java

 `// Java program to print a``// square matrix in Z form`` ` `import` `java.lang.*;``import` `java.io.*;`` ` `class` `GFG {``    ``public` `static` `void` `diag(``int` `arr[][], ``int` `n)``    ``{``        ``int` `i = ``0``, j, k;``        ``for``(i = ``0``;i < n;i++){``           ``for``(j = ``0``;j < n;j++){``              ``if``(i == ``0``){``                ``System.out.print(arr[i][j]+``" "``);``              ``} ``else` `if``(j==n-i-``1``){``                   ``System.out.print(arr[i][j]+``" "``);``              ``} ``else` `if``(i == n-``1``){``                   ``System.out.print(arr[i][j]+``" "``);``              ``}``           ``}``        ``}``         ` `    ``}`` ` `    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `a[][] = { { ``4``, ``5``, ``6``, ``8` `},``                    ``{ ``1``, ``2``, ``3``, ``1` `},``                    ``{ ``7``, ``8``, ``9``, ``4` `},``                    ``{ ``1``, ``8``, ``7``, ``5` `} };`` ` `        ``diag(a, ``4``);``    ``}``}`

## Python3

 `# Python3 program to print``# square matrix in Z form``def` `diag(arr, n):``    ``for` `i ``in` `range``(n):``        ``for` `j ``in` `range``(n):``            ``if``(i ``=``=` `0``):``                ``print``(arr[i][j], end ``=` `" "``)``            ``elif``(j ``=``=` `n``-``(i``+``1``)):``                ``print``(arr[i][j], end ``=` `" "``)``            ``elif``(i ``=``=` `n ``-` `1``):``                ``print``(arr[i][j], end ``=` `" "``)`` ` `# Driver code``if` `__name__ ``=``=` `'__main__'``:``    ``a``=` `[ [ ``4``, ``5``, ``6``, ``8` `],``        ``[ ``1``, ``2``, ``3``, ``1` `],``        ``[ ``7``, ``8``, ``9``, ``4` `],``        ``[ ``1``, ``8``, ``7``, ``5` `] ]`` ` `    ``diag(a, ``4``)``# This code is contributed by mohit kumar 29 and improved by Hari Aditya`

## C#

 `// C# program to print a``// square matrix in Z form``using` `System;`` ` `public` `class` `GFG {``    ``public` `static` `void` `diag(``int` `[,]arr, ``int` `n)``    ``{``        ``int` `i = 0, j;``        ``for``(i = 0; i < n; i++)``        ``{``           ``for``(j = 0; j < n; j++)``           ``{``              ``if``(i == 0){``                ``Console.Write(arr[i, j]+``" "``);``              ``} ``else` `if``(i == j){``                   ``Console.Write(arr[i, j]+``" "``);``              ``} ``else` `if``(i == n-1){``                   ``Console.Write(arr[i, j]+``" "``);``              ``}``           ``}``        ``}``         ` `    ``}`` ` `    ``public` `static` `void` `Main(``string``[] args)``    ``{``        ``int` `[,]a = { { 4, 5, 6, 8 },``                    ``{ 1, 2, 3, 1 },``                    ``{ 7, 8, 9, 4 },``                    ``{ 1, 8, 7, 5 } };`` ` `        ``diag(a, 4);``    ``}``}` `// This code is contributed by rrrtnx.`

## Javascript

 ``

Output

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

Time Complexity: O(n*n)
Auxiliary Space: O(1)

This article is contributed by Aarti_Rathi and R_Raj. 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.

My Personal Notes arrow_drop_up