【 tulaoshi.com - 编程语言 】
改变N的值可以求N阶行列式的值#define N 4
#include stdio.h
#include stdlib.h
void main()
{
int i,j,m,n,s,t,k=1;
double a[N][N],f=1,c,x,sn;
for (i=0;iN;i++)
for (j=0;jN;j++)
scanf ("%lf",&a[i][j]);
for (i=0,j=0;iN&&jN;i++,j++)
{
if (a[i][j]==0)
{
for (m=i;a[m][j]==0;m++);
if (m==N)
{
sn=0;
printf("detA=%lf",sn);
exit(0);
}
else
for (n=j;nN;n++)
{
c=a[i][n];
a[i][n]=a[m][n];
a[m][n]=c;
}
k*=(-1);
}
for (s=N-1;si;s--)
{
x=a[s][j];
for (t=j;tN;t++)
a[s][t]-=a[i][t]*(x/a[i][j]);
}
}
for (i=0;iN;i++)
f*=a[i][i];
sn=k*f;
printf ("detA=%lf",sn);
}