# 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 contain elements below principle diagonal including principle diagonal elements and rest of the elements are 0.
• Upper triangular matrix is a matrix which contain elements above principle diagonal including principle diagonal elements and rest of the elements are 0.

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

```// CPP 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)
{
matrix[i][j] = 0;
}
cout << matrix[i][j] << " ";
}
cout << endl;
}
}

// Function to form upper triangular marix
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)
{
matrix[i][j] = 0;
}
cout << matrix[i][j] << " ";
}
cout << endl;
}
}

// Driver function
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;
}
```

## Java

```// Java program to print Lower
// triangular and Upper triangular
// matrix of an array

class Test
{
// 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)
{
matrix[i][j] = 0;
}
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)
{
matrix[i][j] = 0;
}
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}

// Driver method
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);
}
}
```

Output:
```Lower triangular matrix:
1 0 0
4 5 0
7 8 9
Upper triangular matrix:
1 0 0
0 5 0
0 0 9
```

This article is contributed by Rishabh Jain. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

# GATE CS Corner    Company Wise Coding Practice

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.
2.4 Average Difficulty : 2.4/5.0
Based on 7 vote(s)