Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Program to Print Matrix in Z form

  • Difficulty Level : Basic
  • Last Updated : 15 Nov, 2021

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

 

Attention reader! All those who say programming isn't for kids, just haven't met the right mentors yet. Join the  Demo Class for First Step to Coding Coursespecifically designed for students of class 8 to 12. 

The students will get to learn more about the world of programming in these free classes which will definitely help them in making a wise career choice in the future.

https://media.geeksforgeeks.org/wp-content/uploads/Capture-16.png



Complexity O(n)
 

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

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 diagonal
    int i = 1, j = n - 2;
    while (i < n && j >= 0) // print diagonal
    {
        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.lang.*;
import java.io.*;
 
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>
Output
4 5 6 8 3 8 1 8 7 5 

Alternate Simpler Implementation: 
Thanks to Aathishithan for suggesting this.
 

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(i == j){
                   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>
Output
4 5 6 8 2 9 1 8 7 5 

This article is contributed by 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.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
 




My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!