用c写的雅可比迭代法求数组根的程序
程序如下:#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{int N,n,i,j,k=1;
scanf("%d %d",&N,&n);
float e,x[n],y[n],m,b[n];
scanf("%f",&e);
int a[n][n];
printf("输入系数:\n");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&a[i][j]);
for(i=1;i<=n;i++)
{scanf("%d",&b[i]);
x[i]=0;}
for(i=1;i<=n;i++)
y[i]=b[i];
while(k<=N)
{m=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
if(i!=j)y[i]=b[i]-a[i][j]*x[j];
y[i]=y[i]/a[i][i];
if(fabs(y[i]-x[i])>m)m=fabs(y[i]-x[i]);}
if(m<e)
{printf("计算次数为%d\n",k);
for(i=1;i<=n;i++)
printf("x[%d]=%f\n",i,y[i]);break;}
else {k++;
for(i=1;i<=n;i++)
x[i]=y[i];}
}
if(k>N)printf("发散");
system("pause");
}
编译通过,没有语法错误,但是结果大的离谱,我用的是devcpp。高手帮忙找找错误