时间:2022-10-12 21:22 浏览::次
下面只是我构建整个线性代数计算器的其中一部分,完整的程序还在完善中。
它的功能就是计算一个n阶的方阵行列式:
void Determinant(void)
{
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("计算结果为:%.3fnn",result);
if(result!=0.0)
printf(" 这是一个非奇异行列式n");
else
printf(" 这是一个奇异行列式n");
printf("n");
return;
}