編程階行列式
#include<stdio.h>
void main()
{
int n,a,b,y[10],x[10],i,j,temp;
float m[10][10],k=1;
printf("Input \"n\"");
scanf("%d",&n);
printf("input the matrix:\n");
for(b=1;b<=n;b++)
{
printf("next row:\n");
for(a=1;a<=n;a++)scanf("%f",&m[a][b]);
}
for(b=1;b<=n;b++)
{
for(a=1;a<=n;a++)printf("%10f",m[a][b]);
printf("\n");
}
printf("\n");
for(i=1;i<=n;i++){x[i]=1;y[i]=i;}
for(j=1;j<=n;j++)while(m[x[j]][j]==0)x[j]++;
for(b=n;b>=1;b--)
for(a=1;a<=b-1;a++)
if(x[a]>x[a+1])
{
temp=x[a];x[a]=x[a+1];x[a+1]=temp;
temp=y[a];y[a]=y[a+1];y[a+1]=temp;
k*=-1;
}
for(b=1;b<=n;b++)
{
for(a=1;a<=n;a++)printf("%10f",m[a][y[b]]);
printf("\n");
}
printf("\n");
for(a=1;a<=n;a++)
for(b=a+1;b<=n;b++)
if(m[a][y[b]]!=0)
for(i=a+1;i<=n;i++)
m[i][y[b]]-=m[a][y[b]]*m[i][y[b-1]]/m[a][y[b-1]];
for(b=1;b<=n;b++)
{
for(a=1;a<=n;a++)printf("%10f",m[a][y[b]]);
printf("\n");
}
for(i=1;i<=n;i++)k*=m[i][y[i]];
printf("the matrix is %f \n",k);
scanf("%d",i);
}
我在剛學c那會寫的一個程序,演算法不是很優秀,而且有漏洞,希望能給你提供大體思路。
我也幫你找了個別人寫的程序,你也去看看吧。也是網路上的。