首页  编辑  

N*N价行列式

Tags: /超级猛料/Alogrith.算法和数据结构/数值运算/   Date Created:

作者:Ghost <zhangjiawei@citiz.net>

这段源码本人原创,可做研究,不可擅自发表啊.哈哈哈哈……

怎么谢我呢?VC6下编译通过。

#include<iostream.h>

unsigned short int i,j,n;

float line[50][50],result=1.0;

void input();

void convert(int);

void output();

int main()

{

   input();

   unsigned short int ii,si;

   float temp;

   for (i=1;i<=n-1;i++)

   {

       j=i;

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

       {

           for(si=i+1;si<=n;si++)

               if(line[si][j]!=0) break;

               if(si!=n+1)

                   convert(si);

               else

                   break;

       }

       for(ii=i;ii<=n-1;ii++)

       {

           temp=line[ii+1][i]/line[i][i];

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

               line[ii+1][j]=line[ii+1][j]-line[i][j]*temp;

       }

   }

   output();

   return 0;

}

void input()

{

   cout<<"please input number in your determinant: ";

   cin>>n;

   cout<<endl;

   for(i=1;i<=n;i++)

   {

       cout<<"the "<<i<<"th line: ";

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

           cin>>line[i][j];

       cout<<endl;

   }

}

void convert(int s)

{

   float stemp[50];

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

   {

       stemp[j]=line[s][j];

       line[s][j]=line[i][j];

       line[i][j]=stemp[j];

   }

   result=result*(-1);

}

void output()

{

   for(i=1;i<=n;i++)

       result=result*line[i][i];

   cout<<endl<<"Now the result is "<<result<<endl;

}