Program to Print Matrix in Z form
Last Updated :
16 Feb, 2023
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 <bits/stdc++.h>
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
<?php
// PHP program to print a
// square matrix in Z form
$MAX = 100;
// Function to print a
// square matrix in Z form
function printZform( $mat, $n)
{
// print first row
for($i = 0; $i < $n; $i++)
echo $mat[0][$i] , " ";
// Print diagonal
$i = 1;$j = $n - 2;
// print diagonal
while ($i < $n and $j >= 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
<script>
// JavaScript program to print a square
// matrix in Z form
function printZform(mat, n)
{
var i, j;
// print first row
for (i = 0; i < n; i++) {
document.write(mat[0][i] + " ");
}
// Print diagonal
i = 1;
j = n - 2;
while (i < n && j >= 0) // print diagonal
{
document.write(mat[i][j] + " ");
i++;
j--;
}
// Print last row
for (i = 1; 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);
</script>
Output4 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 <bits/stdc++.h>
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<n-1;i++)
cout<<mat[i][n-i-1]<<" ";
// Print last row
for (i = 0; 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
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
Output4 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<bits/stdc++.h>
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<<arr[i][j]<<" ";
else if(j==n-i-1)
cout<<arr[i][j]<<" ";
else if(i == n-1)
cout<<arr[i][j]<<" ";
}
}
}
//driver's code
int main()
{
int a[][MAX] = { { 4, 5, 6, 8 },
{ 1, 2, 3, 1 },
{ 7, 8, 9, 4 },
{ 1, 8, 7, 5 } };
diag(a, 4);
}
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
<script>
// Javascript program to print a
// square matrix in Z form
function diag(arr, n)
{
var i = 0, j;
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
if(i == 0){
document.write(arr[i][j]+" ");
} else if(i == j){
document.write(arr[i][j]+" ");
} else if(i == n-1){
document.write(arr[i][j]+" ");
}
}
}
}
var 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 rutvik_56.
</script>
Output4 5 6 8 3 8 1 8 7 5
Time Complexity: O(n*n)
Auxiliary Space: O(1)
Similar Reads
Print Matrix in Wave Form Given a matrix mat[][], print it in Wave Form. Input: mat[][] = {{ 1, 2, 3, 4} { 5, 6, 7, 8} { 9, 10, 11, 12} {13, 14, 15, 16} {17, 18, 19, 20}}Output: 1 5 9 13 17 18 14 10 6 2 3 7 11 15 19 20 16 12 8 4 Explanation: Output is printed in wave form. Input: mat[][] = {{1, 9, 4, 10} { 3, 6, 90, 11} { 2,
7 min read
Program to print numbers in digital form Given a number n then print the number in Digital form. Examples : Input : 5 Output : - - | - - | - - Input : 8 Output : - - | | - - | | - - Explanation: Take a matrix of size 5*5 and store 0 and 1 in the matrix. If matrix cell is 0 then it is used for space and if matrix cell is 1 then it is used e
15+ min read
Program to print the Diagonals of a Matrix Given a 2D square matrix, print the Principal and Secondary diagonals. Examples : Input: 41 2 3 44 3 2 17 8 9 66 5 4 3Output:Principal Diagonal: 1, 3, 9, 3Secondary Diagonal: 4, 2, 8, 6Input:31 1 11 1 11 1 1Output:Principal Diagonal: 1, 1, 1Secondary Diagonal: 1, 1, 1For example, consider the follow
14 min read
Print a matrix in Reverse Wave Form Given a matrix, print it in Reverse Wave Form. Examples : Input : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Output : 4 8 12 16 15 11 7 3 2 6 10 14 13 9 5 1 Input : 1 9 4 10 3 6 90 11 2 30 85 72 6 31 99 15 Output : 10 11 72 15 99 85 90 4 9 6 30 31 6 2 3 1 Approach :To get the reverse wave form for a giv
8 min read
Print matrix in zig-zag fashion Given a matrix of 2D array of n rows and m columns. Print this matrix in ZIG-ZAG fashion as shown in figure. Example: Input: {{1, 2, 3}{4, 5, 6}{7, 8, 9}}Output: 1 2 4 7 5 3 6 8 9Input : [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]Output:: 1 2 5 9 6 3 4 7 10 13 14 11 8 12 15 16Thi
10 min read
Print a given matrix in zigzag form Given a 2D array, print it in zigzag form. Examples : Input : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Output : 1 2 3 4 5 10 9 8 7 6 11 12 13 14 15 20 19 18 17 16 Input : 10 24 32 50 6 17 99 10 11 Output : 10 24 32 17 6 50 99 10 11 CPP // C++ program to print // matrix in zig-zag form #inc
7 min read