解线性方程迭代法
我不知道自己到底哪里出现问题了 大家看看吧!!#include<stdio.h>
#include<math.h>
int n;
int fun(float t[n],float e)
{
int i;
float min;
min=t[1];
for(i=1;i<=n;i++)
if(min<t[i])
min=t[i];
if(min<e)
return 0;
else return 1;
}
main()
{
float x[20][10],a[10][10],sum=0,b[10],t[10],flag=1,e;
int i,j,k=0;
// 第一步输入数据
printf("请输入你要输入数组的维数\n");
scanf("%d",&n);
printf("请按顺序输入下面的数据\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf(" a[%d][%d]",i,j);
printf(" b[%d]\n",i);
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
scanf("%f",&a[i][j]);
}
scanf("%f",&b[i]);
}
printf("请输入你要输入的初始值\n");
for(i=1;i<=n;i++)
{
scanf("%f",x[0][i]);
}
printf("请输入你要的精度\n");
scanf("%f",&e);
// 第二步对数据进行处理
while(flag)
{
k++;
for(i=1;i<=n;i++)
{
sum=0;
for(j=1;j<=n;j++)
{
if(j==i)
continue;
else
{
sum=sum+a[i][j]*x[k-1][j];
}
x[k][i]=sum/a[i][i];
}
}
for(i=1;i<=n;i++)
{
t[i]=x[k][i]-x[k-1][i];
}
flag=fun(t[],e);
}
// 第三步输出数据
printf("你要的结果是\n");
for(i=1;i<=n;i++)
{
printf("x[%d]=%f\n",i,x[i]);
}
}