**C program to check if a given matrix is a lower triangular** has been shown here. A square matrix is considered a lower triangular matrix if all the elements above the main diagonal are Zero. The elements in the main diagonal may or may not be 0.

**Examples:**

In the given examples, (i), (ii), (iv) and (v) are lower triangular matrices as every element above the principal diagonal is 0 in each of these matrices. The matrix shown in (iii) is not a lower triangular matrix as one element above the principal diagonal is non-zero. The dotted lines have been drawn over the principal diagonals.

## 1. Algorithm to Check If a Matrix Is a Lower Triangular Matrix

1. Take a matrix $A_{m\times n}$ as input

2. Check if $m=n$

3. If step [2] is false then display "Input matrix is not a square matrix!" and exit program

4. If step [2] is true, then

5. Check if $A_{i,j} \neq 0$ for each $i < j$ and $i \in [1, m]$ and $j \in [1, n]$

6. If step [5] is true for atleast one $A_{i,j}$ then display "The matrix is not a lower triangular matrix" and exit program.

7. If step [5] is false then display "The matrix is a lower triangular matrix" and exit program.

## 2. Pseudocode to Check If a Matrix Is a Lower Triangular Matrix

**Input**: A matrix $A_{m\times n}$

**Output**: A is lower triangular or not

1. **Procedure** lowerTriangularMatrix($A_{m\times n}$):

2. **If** $m == n$:

3. **Repeat** for each $i < j$ where $i \in [1, m]$ and $j \in [1, n]$

4. **If** $A_{i,j} \neq 0$:

5. ** Return ***Not a lower triangular matrix*

6. **Return** *A lower triangular matrix*

7. **Else:**

8. ** Return ***It should be a square matrix*

9. **End Procedure**

## 3. Time Complexity to Check If a Matrix Is a Lower Triangular Matrix

**Time Complexity:** **O($mn$)**

Where $m$ is the number of rows and $n$ is the number of columns in the matrices.

## 4. C Program to Check If a Matrix Is a Lower Triangular Matrix

/********************************** alphabetacoder.com C Program to check if a matrix is a lower triangular matrix ***********************************/ #include <stdio.h> int main() { // declare variables int m, n, i, j, flag = 0; int A[10][10] = {0}; //take input of the order of the matrix printf("Enter the number of rows and columns of matrix = "); scanf("%d%d", & m, & n); //take input of the first matrix printf("Enter the elements of matrix of order %d x %d = \n", m, n); for (i = 0; i < m; i++) for (j = 0; j < n; j++) scanf("%d", & A[i][j]); // check if the matrix is a square matrix or not // if it is square matrix, check if it is lower triangular or not if (m != n) printf("\nInput matrix is not a square matrix!\n"); else { // check if A is lower triangular or not by // finding an non-zero element above main diagonal for (i = 0; i < m; i++) { for (j = i + 1; j < n; j++) { if (A[i][j] != 0) { // non-zero element found flag = 1; break; } } // break the loop as non-zero element // above main diagonal has been detected if (flag == 1) break; } // display the result if (flag == 0) printf("\nIt is a lower triangular matrix!"); else printf("\nIt is not a lower triangular matrix!"); } return 0; }

Output

**Case 1:**

Enter the number of rows and columns of matrix = 3 3

Enter the elements of matrix of order 3 x 3 =

2 0 0

1 2 0

4 1 2

It is a lower triangular matrix!

**Case 2:**

Enter the number of rows and columns of matrix = 3 3

Enter the elements of matrix of order 3 x 3 =

0 0 1

4 5 0

2 1 0

It is not a lower triangular matrix!

## No comments:

## Post a Comment

If you have any doubts or suggestions, please leave a note.