c语言高斯算法,请问错在哪里

#include<stdio.h>
#include<stdlib.h>
int main()

{
float a[3][3]={{1,1,1},{12,-3,3},{-18,3,-1}},b[3]={6,15,-15},m=0;
int i,j,k=1,n;

for(i=0;i<=2;i++)
{

for(j=0;j<=2;j++)
{
printf("%.2f ",a[i][j]);

} printf("\n");
}
for(i=0;i<3;i++)
{
printf("%.2f ",b[i]);
}
printf("\n");

if(a[k][k]==0){
printf("输入错误");
exit(0);
}
else
{
for(k=0;k<2;k++)
{
for(i=k+1;i<3;i++)
{
a[i][k]=a[i][k]/a[k][k];
b[i]=b[i]-a[i][k]*b[k];
for(j=k+1;j<3;j++)
{
a[i][j]=a[i][j]-a[i][k]*a[k][j];
}
}
}
//}//else
if(a[2][2]==0)
exit(0);
else{
b[2]=b[2]/a[2][2];
for(k=2;k>=0;k--)
{ m=0;
for(i=k+1;i<=2;i++)
{
m+=a[i][i+1]*b[i+1];
}

b[k]=(b[k]-m)/a[k][k];

printf("x=%.2f\n",x[k]);

}
}//else
}//else
return 0;
}

第1个回答  2010-08-28
楼主的“高斯算法”是矩阵里的,用来求解线性方程组的。