c语言求解三阶行列式
时间: 2023-07-09 14:09:37 浏览: 303
C语言求解三阶行列式可以使用Sarrus法则来实现。Sarrus法则是一种简单而常用的计算行列式的方法,适用于3阶行列式。具体步骤如下:
1. 将3阶行列式按照下面的形式写出:
```
| a11 a12 a13 |
| a21 a22 a23 |
| a31 a32 a33 |
```
2. 在行列式的右侧再复制一遍前两列,形成一个6列的矩阵:
```
| a11 a12 a13 | a11 a12 |
| a21 a22 a23 | a21 a22 |
| a31 a32 a33 | a31 a32 |
```
3. 按照对角线方向计算3个对角线上的乘积之和,得到行列式的值:
```
| a11 a12 a13 | a11 a12 | | a11 a12 a13 | a11 a12 |
| a21 a22 a23 | a21 a22 | | a21 a22 a23 | a21 a22 |
| a31 a32 a33 | a31 a32 | | a31 a32 a33 | a31 a32 |
\ \ / \ / \ \ /
\ \ / \ / \ \ /
\ \ / \ / \ \ /
a11*a22*a33 + a12*a23*a31 + a13*a21*a32 - a31*a22*a13 - a32*a23*a11 - a33*a21*a12
```
以下是具体实现代码:
```c
#include <stdio.h>
int main() {
int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int det = a[0][0]*a[1][1]*a[2][2] + a[0][1]*a[1][2]*a[2][0] + a[0][2]*a[1][0]*a[2][1] - a[2][0]*a[1][1]*a[0][2] - a[2][1]*a[1][2]*a[0][0] - a[2][2]*a[1][0]*a[0][1];
printf("The determinant of the matrix is %d\n", det);
return 0;
}
```
输出结果为:
```
The determinant of the matrix is 0
```
因为该矩阵的行列式为0。
阅读全文