C Program to find Determinant of a Matrix

How to write a C Program to find the Determinant of a Matrix with example. The below image will show you the mathematical formula behind this program.

Matrix Determinant Mathematical Formula

C Program to find Determinant of a Matrix – 2 * 2 Example

This program allows the user to enter the rows and columns elements of a 2 * 2 Matrix. Next, we are going to find the determinant of this matrix.

/* Determinant of a 2 * 2 Matrix */
 
#include<stdio.h>
 
int main()
{
 	int rows, columns, a[2][2], Deter = 0;
  
 	printf("\n Please Enter the 2 * 2 Matrix Elements \n ");
 	for(rows = 0; rows < 2; rows++)
  	{
   		for(columns = 0;columns < 2; columns++)
    	{
      		scanf("%d", &a[rows][columns]);
    	}
  	}
     
	Deter = (a[0][0] * a[1][1]) - (a[0][1] * a[1][0]);
  	
  	printf("\n The Determinant of 2 * 2 Matrix = %d", Deter);
 	return 0;
}
 Please Enter the 2 * 2 Matrix Elements 
 10 20
30 40

 The Determinant of 2 * 2 Matrix = -200

In this program, we used for loop to iterate each cell present in a[2][2] matrix. Conditions inside the for loops((rows < i) and (columns < j)) will ensure the compiler, not to exceed the Matrix limit. Otherwise, the matrix will overflow

The C Programming scanf statement inside the for loop will store the user entered values in every individual array element such as a[0][0], a[0][1], …..

for(rows = 0; rows < i; rows++).
{
  for(columns = 0; columns < j; columns++)
   {
     scanf("%d", &a[rows][columns]);
   }
}

In the next line, We are calculating the Determinant

Determinant = (a[0][0] * a[1][1]) - (a[0][1] * a[1][0]);

User entered array a[2][2] = {{10, 20}, {30, 40}}

Determinant = (a[0][0] * a[1][1]) – (a[0][1] * a[1][0])

= (10 * 40) – (20 * 30)

Determinant= (400) – (600) = -200

C Program to find Determinant of a Matrix – 3 * 3 Example

This program is similar to the above example, but this time we are finding the determinant of 3 * 3 matrix.

/* Determinant of a 3 * 3 Matrix */
 
#include<stdio.h>
 
int main()
{
 	int rows, columns, a[3][3];
	int x, y, z, Determinant = 0;
  
 	printf("\n Please Enter the 3 * 3 Matrix Elements \n");
 	for(rows = 0; rows < 3; rows++)
  	{
   		for(columns = 0;columns < 3; columns++)
    	{
      		scanf("%d", &a[rows][columns]);
    	}
  	}
  	
    x = (a[1][1] * a[2][2]) - (a[2][1] * a[1][2]);
    y = (a[1][0] * a[2][2]) - (a[2][0] * a[1][2]);
    z = (a[1][0] * a[2][1]) - (a[2][0] * a[1][1]);
	
	Determinant = (a[0][0] * x) - (a[0][1] * y) + (a[0][2] * z);
  	
  	printf("\n The Determinant of 3 * 3 Matrix = %d", Determinant);
 	return 0;
}
C Program to find Determinant of a Matrix 3

In this Program to find Determinant of a Matrix example, User entered array a[3][3] = {{10, 20, 30}, {40, 50, 60}, {70, 80, 90}}

x = (a[1][1] * a[2][2]) – (a[2][1] * a[1][2])

x = (50 * 90) – (80 * 60)

x = 4500 – 4800

x = -300

y = (a[1][0] * a[2][2]) – (a[2][0] * a[1][2])

y = (40 * 90) – (70 * 60)

y = 3600 – 4200

y = -600

z = (a[1][0] * a[2][1]) – (a[2][0] * a[1][1])

z = (40 * 80) – (70 * 50)

z = (3200) – (3500)

z = -300

Determinant= (a[0][0] * x) – (a[0][1] * y) + (a[0][2] * z)

= (10 * -300) – (20 * -600) + (30 * -300)

= (-3000) – (-12000) + (-9000)

Determinant= -3000 + 12000 – 9000 = 0