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

About Suresh

Suresh is the founder of TutorialGateway and a freelance software developer. He specialized in Designing and Developing Windows and Web applications. The experience he gained in Programming and BI integration, and reporting tools translates into this blog. You can find him on Facebook or Twitter.