WEB开发网
开发学院软件开发C++ 求N阶行列式的值 阅读

求N阶行列式的值

 2008-03-08 12:48:26 来源:WEB开发网   
核心提示:改变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
改变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);
}<

Tags:行列式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接