Open In App
Related Articles

Program to print Lower triangular and Upper triangular matrix of an array

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

Prerequisite – Multidimensional Arrays in C / C++
Given a two dimensional array, Write a program to print lower triangular matrix and upper triangular matrix. 

  • Lower triangular matrix is a matrix which contains elements below principal diagonal including principal diagonal elements and rest of the elements are 0.
  • Upper triangular matrix is a matrix which contains elements above principal diagonal including principal diagonal elements and rest of the elements are 0.

LOWER TRIANGULAR : 
{\displaystyle \begin{bmatrix} A_{00} & 0 & 0 & ... & 0\\ A_{10} & A_{11} & 0 & ... & 0\\ A_{20} & A_{21} & A_{22} & ... & 0\\ . & . & . & . & .\\ . & & & & \\ . & & & & \\ . & & & & \\ . & & & & \\ . & & & & \\ A_{row0} & A_{row1} & A_{row2} & ... & A_{rowcol} \end{bmatrix}}
UPPER TRIANGULAR : 
{\displaystyle \begin{bmatrix} A_{00} & A_{01} & A_{02} & ... & A_{0col}\\ 0 & A_{11} & A_{22} & ... & A_{1col}\\ 0 & 0 & A_{22} & ... & A_{2col}\\ . & . & . & . & .\\ . & & & & \\ . & & & & \\ . & & & & \\ . & & & & \\ . & & & & \\ 0 & 0 & 0 & ... & A_{rowcol} \end{bmatrix}}

Examples : 

Input : matrix[3][3] = {1 2 3
                       4 5 6
                       7 8 9}
Output :
Lower : 1 0 0        Upper : 1 2 3
        4 5 0                0 5 6
        7 8 9                0 0 9

Input : matrix[3][3] = {7 8 9
                        3 2 1
                        6 5 4}
Output :
Lower : 7 0 0       Upper : 7 8 9
        3 2 0               0 2 1
        6 5 4               0 0 4

Steps: 

  1. For lower triangular matrix, we check the index position i and j i.e. row and column respectively. If column position is greater than row position we simply make that position 0.
  2. For upper triangular matrix, we check the index position i and j i.e. row and column respectively. If column position is smaller than row position we simply make that position 0.

C++

// C++ program to print Lower 
// triangular and Upper triangular
// matrix of an array
#include<iostream>
  
using namespace std;
  
// Function to form 
// lower triangular matrix
void lower(int matrix[3][3], int row, int col)
{
    int i, j;
    for (i = 0; i < row; i++)
    {
        for (j = 0; j < col; j++)
        {
            if (i < j)
            {
                cout << "0" << " ";
            }
            else
            cout << matrix[i][j] << " ";
        }
        cout << endl;
    }
}
  
// Function to form upper triangular matrix
void upper(int matrix[3][3], int row, int col)
{
    int i, j;
      
    for (i = 0; i < row; i++)
    {
        for (j = 0; j < col; j++)
        {
            if (i > j)
            {
                cout << "0" << " ";
            }
            else
            cout << matrix[i][j] << " ";
        }
        cout << endl;
    }
}
  
// Driver Code
int main()
{
    int matrix[3][3] = {{1, 2, 3}, 
                        {4, 5, 6}, 
                        {7, 8, 9}};
    int row = 3, col = 3;
      
    cout << "Lower triangular matrix: \n";
    lower(matrix, row, col);
      
    cout << "Upper triangular matrix: \n";
    upper(matrix, row, col);
          
    return 0;
}

                    

C

// C program to print lower triangular and upper triangular matrix
#include <stdio.h>
  
// Function to print lower triangular matrix
void lower (int a[3][3], int r, int c)
{
  for(int i = 0; i < r; i++)
  {
    for(int j = 0; j < c; j++)
    {
      if(i > j)
        printf("0");
      else
      printf("%d" , a[i][j]);
      printf(" ");
    }
    printf("\n");
  }
}
//Function to print upper triangular matrix
void upper (int a[3][3], int r, int c)
{
   for(int i = 0; i < r; i++)
  {
    for(int j = 0; j < c; j++)
    {
      if(i < j)
        printf("0");
      else
      printf("%d" , a[i][j]);
      printf(" ");
    }
    printf("\n");
  }
}
int main() {
    // code
  int r = 3, c = 3;
  int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
   
  printf("\nLower Triangular Matrix is  :\n");
  lower(a, r, c);
  printf("\nUpper Triangular Matrix is  :\n");
  upper(a, r, c);
    return 0;
}
  
// This code is contributed by aayushi2402.

                    

Java

// Java program to print Lower 
// triangular and Upper triangular
// matrix of an array
import java.io.*;
public class GFG
{
    // method to form lower 
    // triangular matrix
    static void lower(int matrix[][], 
                      int row, int col)
    {
        int i, j;
        for (i = 0; i < row; i++)
        {
            for (j = 0; j < col; j++)
            {
                if (i < j)
                {
                    System.out.print("0" + " ");
                }
                else
                System.out.print(matrix[i][j] + " ");
            }
            System.out.println();
        }
    }
      
    // Method to form upper
    // triangular matrix
    static void upper(int matrix[][], 
                      int row, int col)
    {
        int i, j;
        for (i = 0; i < row; i++)
        {
            for (j = 0; j < col; j++)
            {
                if (i > j)
                {
                    System.out.print("0" + " ");
                }
                else
                System.out.print(matrix[i][j] + " ");
            }
            System.out.println();
        }
    }
       
    // Driver Code
    public static void main(String args[])
    {
        int matrix[][] = {{1, 2, 3}, 
                          {4, 5, 6}, 
                          {7, 8, 9}};
        int row = 3, col = 3;
          
        System.out.println("Lower triangular matrix: ");
        lower(matrix, row, col);
          
        System.out.println("Upper triangular matrix: ");
        upper(matrix, row, col);
    }
}

                    

Python3

# Python3 program to print Lower 
# triangular and Upper triangular
# matrix of an array
  
# Function to form lower triangular 
# matrix
def lower(matrix, row, col):
  
      
    for i in range(0, row):
      
        for j in range(0, col):
          
            if (i < j):
              
                print("0", end = " ");
              
            else:
                print(matrix[i][j], 
                       end = " " );
          
        print(" ");
      
# Function to form upper triangular matrix
def upper(matrix, row, col):
  
    for i in range(0, row):
      
        for j in range(0, col):
          
            if (i > j):
                print("0", end = " ");
              
            else:
                print(matrix[i][j], 
                       end = " " );
          
        print(" ");
  
# Driver Code
matrix = [[1, 2, 3], 
          [4, 5, 6], 
          [7, 8, 9]];
row = 3;
col = 3;
      
print("Lower triangular matrix: ");
lower(matrix, row, col);
      
print("Upper triangular matrix: ");
upper(matrix, row, col);
          
# This code is contributed by
# Shivi_Aggarwal 

                    

C#

// C# program to print  
// Lower triangular and
// Upper triangular
// matrix of an array
using System;
  
class GFG
{
    // method to form lower 
    // triangular matrix
    static void lower(int [,]matrix, 
                      int row, int col)
    {
        int i, j;
        for (i = 0; i < row; i++)
        {
            for (j = 0; j < col; j++)
            {
                if (i < j)
                {
                    Console.Write("0" + " ");
                }
                else
                Console.Write(matrix[i, j] + " ");
            }
            Console.WriteLine();
        }
    }
      
    // Method to form upper
    // triangular matrix
    static void upper(int [,]matrix, 
                      int row, int col)
    {
        int i, j;
        for (i = 0; i < row; i++)
        {
            for (j = 0; j < col; j++)
            {
                if (i > j)
                {
                    Console.Write("0" + " ");
                }
                else
                Console.Write(matrix[i, j] + " ");
            }
        Console.WriteLine();
        }
    }
      
    // Driver Code
    static public void Main ()
    {
        int [,]matrix = {{1, 2, 3}, 
                        {4, 5, 6}, 
                        {7, 8, 9}};
        int row = 3, col = 3;
          
        Console.WriteLine("Lower triangular matrix: ");
        lower(matrix, row, col);
          
        Console.WriteLine("Upper triangular matrix: ");
        upper(matrix, row, col);
    }
}
  
// This code is contributed by ajit 

                    

PHP

<?php
// PHP program to print Lower 
// triangular and Upper triangular
// matrix of an array
  
// Function to form 
// lower triangular matrix
function lower($matrix, $row, $col)
{
    $i; $j;
    for ($i = 0; $i < $row; $i++)
    {
        for ($j = 0; $j < $col; $j++)
        {
            if ($i < $j)
            {
                echo "0" , " ";
            }
            else
            echo $matrix[$i][$j] , " ";
        }
        echo "\n";
    }
}
  
// Function to form
// upper triangular matrix
function upper($matrix, $row, $col)
{
    $i; $j;
      
    for ($i = 0; $i < $row; $i++)
    {
        for ($j = 0; $j < $col; $j++)
        {
            if ($i > $j)
            {
                echo "0" , " ";
            }
            else
            echo $matrix[$i][$j] ," ";
        }
    echo "\n";
    }
}
  
// Driver Code
$matrix = array (array (1, 2, 3),
                  array (4, 5, 6),
                 array (7, 8, 9));
$row = 3; $col = 3;
  
echo "Lower triangular matrix: \n";
lower($matrix, $row, $col);
  
echo "Upper triangular matrix: \n";
upper($matrix, $row, $col);
      
// This code is contributed by jit_t
?>

                    

Javascript

<script>
// Java  script program to print Lower
// triangular and Upper triangular
// matrix of an array
  
    // method to form lower
    // triangular matrix
    function lower( matrix,row,col)
    {
        let i, j;
        for (i = 0; i < row; i++)
        {
            for (j = 0; j < col; j++)
            {
                if (i < j)
                {
                    document.write("0" + " ");
                }
                else
                document.write(matrix[i][j] + " ");
            }
            document.write("<br>");
        }
    }
      
    // Method to form upper
    // triangular matrix
    function upper(matrix,row,col)
    {
        let i, j;
        for (i = 0; i < row; i++)
        {
            for (j = 0; j < col; j++)
            {
                if (i > j)
                {
                    document.write("0" + " ");
                }
                else
                document.write(matrix[i][j] + " ");
            }
            document.write("<br>");
        }
    }
      
    // Driver Code
      
        let matrix = [[1, 2, 3],
                        [4, 5, 6],
                        [7, 8, 9]];
        let row = 3, col = 3;
          
        document.write("Lower triangular matrix: <br>");
        lower(matrix, row, col);
          
        document.write("Upper triangular matrix: <br>");
        upper(matrix, row, col);
          
// contributed by sravan kumar
</script>

                    

Output
Lower triangular matrix: 
1 0 0 
4 5 0 
7 8 9 
Upper triangular matrix: 
1 2 3 
0 5 6 
0 0 9 

Time Complexity: O(row x col)
Auxiliary Space: O(1), since no extra space has been taken.

 



Last Updated : 16 Feb, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads