求N阶行列式的值

王朝other·作者佚名  2008-06-01
宽屏版  字体: |||超大  

改变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;i<N;i++)

for (j=0;j<N;j++)

scanf ("%lf",&a[i][j]);

for (i=0,j=0;i<N&&j<N;i++,j++)

{

if (a[i][j]==0)

{

for (m=i;a[m][j]==0;m++);

if (m==N)

{

sn=0;

printf("detA=%lf\n",sn);

exit(0);

}

else

for (n=j;n<N;n++)

{

c=a[i][n];

a[i][n]=a[m][n];

a[m][n]=c;

}

k*=(-1);

}

for (s=N-1;s>i;s--)

{

x=a[s][j];

for (t=j;t<N;t++)

a[s][t]-=a[i][t]*(x/a[i][j]);

}

}

for (i=0;i<N;i++)

f*=a[i][i];

sn=k*f;

printf ("detA=%lf\n",sn);

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有