C语言实现三对角行列式计算
时间: 2024-06-03 22:08:14 浏览: 18
#include <stdio.h>
int main()
{
int n, i, j;
double a[100][3], det = 1.0;
printf("请输入三对角矩阵的阶数:");
scanf("%d", &n);
printf("请输入三对角矩阵的各元素:\n");
for (i = 0; i < n; i++)
{
scanf("%lf", &a[i][1]);
if (i != 0)
scanf("%lf", &a[i][0]); //第一列除了第一个元素外,其余元素均为0
if (i != n-1)
scanf("%lf", &a[i][2]); //最后一列除了最后一个元素外,其余元素均为0
}
//高斯消元
for (i = 0; i < n-1; i++)
{
if (a[i][1] == 0) //主元为0无法消元
{
printf("无法进行高斯消元!\n");
return 0;
}
a[i+1][0] /= a[i][1];
a[i+1][1] -= a[i+1][0] * a[i][2];
det *= a[i][1]; //计算行列式的值
}
det *= a[n-1][1]; //最后一个主元为行列式的值
printf("该三对角矩阵的行列式为:%lf\n", det);
return 0;
}