c语言 以下两个程序相同为什么结果不一样?

来源:百度知道 编辑:UC知道 时间:2024/09/21 03:20:43
不同的地方我做有提示这是txt中的数据{0.001 2.000 3.000 -1.000 3.712 4.623 -2.000 1.072 5.643 1.000 2.000 3.000 }
下面是主程序 1
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void main()
{

int k,i,j,l;double a[3][3],b[3],c,d,max,sum;
FILE *fp=fopen("d:\\in.txt","r"); /*打开文件*/
for(i=0;i<3;i++)
for(j=0;j<3;j++)
fscanf(fp,"%lf",&a[i][j]); /*赋值*/

for(j=0;j<3;j++)
fscanf(fp,"%lf",&b[j]); /*赋值*/

for(i=0;i<3;i++)
for(j=0;j<3;j++)
{ printf("%10.4lf",a[i][j]); /*打印数组*/
if(j==2) printf("\n");
}
printf("\n");

for(j=0;j<3;j++)
{
printf("%10.4lf",b[j]);
}
printf("\n

/*从这开始不一样 导致结果出错*/
for(i=j+1;i<3;i++) /*step5获得乘数*/
{
a[i][j]=a[i][j]/a[j][j];
b[i]=b[i]-b[j]*a[i][j];
for(l=j+1;l<3;l++)
a[i][l]=a[i][j]-a[i][j]*a[j][l];
}
}
/*到着结束*/

这是主程序2与他不同的就是下面这段
for(i=j+1;i<3;i++)
{
a[i][j]=a[i][j]/a[j][j];
b[i]=b[i]-b[j]*a[i][j]; for(l=j+1;l<3;l++)
a[i][l]=a[i][l]-a[i][j]*a[j][l];
}
}
注意两个的最后一行:
a[i][l]=a[i][ j ]-a[i][j]*a[j][l];
a[i][l]=a[i][ l ]-a[i][j]*a[j][l];
等号右边的那个,一个是j,一个是l;

程序相同?
结果不同?
好像不对
定有差别
望细细看