线性代数计算器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;
}
在这段代码中⾏列式计算的思路为先把⾏列式化简为⼀个对⾓⾏列式,然后把它对⾓线元素累乘起来即可,其中注释掉的部分⽤于在屏幕上显⽰化简后的三⾓形⾏列式,⽅便调试。
如有不妥,或者其他的意见或建议,欢迎⼤家提出!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论