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

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 :

UPPER TRIANGULAR :

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   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   // 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

  $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

 

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.

Previous
Next
Share your thoughts in the comments
Similar Reads