作者: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;
}