用c语言编程一个计算行列式的程序
时间: 2023-03-19 17:23:59 浏览: 194
下面是一个使用C语言编写的计算行列式的示例程序:
```c
#include <stdio.h>
// 定义常量
#define MAX_SIZE 10
// 定义计算行列式的函数
double determinant(double matrix[MAX_SIZE][MAX_SIZE], int n)
{
double det = 0;
int i, j, k;
double submatrix[MAX_SIZE][MAX_SIZE];
if (n == 2) {
return ((matrix[0][0] * matrix[1][1]) - (matrix[1][0] * matrix[0][1]));
} else {
for (k = 0; k < n; k++) {
i = 0;
j = 0;
while (i < n - 1) {
if (j == k) {
j++;
}
submatrix[i][j] = matrix[i + 1][j];
j++;
if (j == n) {
i++;
j = 0;
}
}
det = det + (matrix[0][k] * pow(-1, k) * determinant(submatrix, n - 1));
}
}
return det;
}
int main()
{
double matrix[MAX_SIZE][MAX_SIZE];
int n, i, j;
printf("请输入矩阵的大小:");
scanf("%d", &n);
printf("请输入矩阵的元素:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%lf", &matrix[i][j]);
}
}
printf("该矩阵的行列式为:%lf", determinant(matrix, n));
return 0;
}
```
该程序使用递归的方式计算行列式,如果矩阵大小为2,则直接根据公式计算行列式的值;如果矩阵大小大于2,则将原矩阵化为多个小矩阵,递归计算每个小矩阵的行列式,最终得到原矩阵的行列式。程序中使用了pow函数计算-1的幂次方,需要包含math.h头文件。
阅读全文