📄 soj2921高斯消元法求解行列式.cpp
字号:
#include<stdio.h>
#include<math.h>
double mat[9][9];
int main(void)
{
int n,i,j,k,h;
double bei,sum;
while(scanf("%d",&n)==1)
{
sum=1;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%lf",&mat[i][j]);
}
}
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(fabs(mat[i][i]-0)<0.00000000001)
{
for(k=j;mat[k][i]==0&&k<n;k++);
if(k==n)
break;
for(h=i;h<n;h++)
{
double temp;
temp=mat[k][h];
mat[k][h]=mat[i][h];
mat[i][h]=temp;
}
}
bei=mat[j][i]/mat[i][i];
for(k=i;k<n;k++)
{
mat[j][k]-=mat[i][k]*bei;
}
}
}
/* for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%d\t",mat[i][j]);
printf("\n");
}*/
for(i=0;i<n;i++)
sum*=mat[i][i];
printf("%.0lf\n",fabs(sum)+0.0000000001);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -