C 语言查找矩阵行列式的程序

如何编写 C 语言程序来查找矩阵的行列式,并附有示例。下图将向您展示此程序背后的数学公式。

Matrix Determinant Mathematical Formula

C 语言查找矩阵行列式的程序 – 2*2 示例

此程序允许用户输入 2*2 矩阵的行和列元素。接下来,我们将找到此矩阵的行列式。

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

在此程序中,我们使用 for 循环迭代 a[2][2] 矩阵中的每个单元格。for 循环内的条件 ((rows < i) 和 (columns < j)) 将确保编译器不会超出 矩阵的限制。否则,矩阵将溢出。

for 循环中的 C 语言 scanf 语句将用户输入的值存储在每个单独的数组元素中,例如 a[0][0]、a[0][1]、……。

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

下一行,我们正在计算行列式

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

用户输入的数组 a[2][2] = {{10, 20}, {30, 40}}

行列式 = (a[0][0] * a[1][1]) – (a[0][1] * a[1][0])

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

行列式 = (400) – (600) = -200

C 语言查找矩阵行列式的程序 – 3*3 示例

程序与上面的示例类似,但这次我们正在查找 3*3 矩阵的行列式。

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

在此程序示例中,用户输入的数组 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

行列式 = (a[0][0] * x) – (a[0][1] * y) + (a[0][2] * z)

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

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

行列式 = -3000 + 12000 – 9000 = 0