苏宁国美京东哪个好:用C语言编个算4阶行列式的程序,出错了...

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/02 11:33:11
main()
{
float a[4][4],x[3],sum;
int i,j,h;
printf("Input the number :\n");
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%f",&a[i][j]);
for(h=0;h<3;h++)
{
for(i=h;i<3;i++)
{
x[h]=a[i+1][h]/a[i][h];
for(j=0;j<4;j++)
{
a[i+1][j]-=x[h]*a[i][j];
}
}
}
sum=a[0][0]+a[1][1]+a[2][2]+a[3][3];
printf("The result is %f .\n",sum);
}
编译是可以,运行后输入数据后,它就出现:Floating point error: Divide by 0.
算法哪错了??5555555555~.~

main()
{
float a[4][4],x[3],sum;
int i,j,h;
printf("Input the number :\n");
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%f",&a[i][j]);
for(h=0;h<3;h++)
{
for(i=h;i<3;i++)
{
x[h]=a[i+1][h]/a[i][h];
------------------
是不是这里除数为零了,算行列式的时候要考虑
for(j=0;j<4;j++)
{
a[i+1][j]-=x[h]*a[i][j];
}
}
}
sum=a[0][0]+a[1][1]+a[2][2]+a[3][3];
printf("The result is %f .\n",sum);
}