线性代数计算器C语⾔(1)——计算⾏列式值
⽤C语⾔编写⼀个简单的⾏列式计算程序
下⾯只是我构建整个线性代数计算器的其中⼀部分,完整的程序还在完善中。
它的功能就是计算⼀个n阶的⽅阵⾏列式:
void Determinant(void)
{
网页计算器html代码float matrix[10][10],result=1,xshu;
int n,i,j,k;
do
{
printf("请输⼊待计算的⾏列式的阶数(n>1):\n");
scanf("%d",&n);
}while(n<2);
printf("请输⼊待计算的⾏列式(⽤空格隔开):\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%f",&matrix[i][j]);
}
}
printf("\n");
for(k=0;k<n-1;k++)
{
for(i=0;i<n-1;i++)
{
xshu=-1*matrix[i+k+1][k]/matrix[k][k];  //算出来下⼀⾏之间的系数
for(j=0;j<n;j++)
{
matrix[i+k+1][j]=matrix[i+k+1][j]+xshu*matrix[k][j];
}
}
}
/
*  printf("三⾓⾏列式为:\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%.2lf  ",matrix[i][j]);
}
printf("\n");
}*/
for(i=0;i<n;i++)  //计算结果
result*=matrix[i][i];
printf("计算结果为:%.3f\n\n",result);
if(result!=0.0)
printf("  这是⼀个⾮奇异⾏列式\n");
else
printf("  这是⼀个奇异⾏列式\n");
printf("\n");
return;
}
在这段代码中⾏列式计算的思路为先把⾏列式化简为⼀个对⾓⾏列式,然后把它对⾓线元素累乘起来即可,其中注释掉的部分⽤于在屏幕上显⽰化简后的三⾓形⾏列式,⽅便调试。
如有不妥,或者其他的意见或建议,欢迎⼤家提出!