安达维尔什么时候上市:各位大哥大姐帮忙解决一下这道C语言的编程小难题啊 小弟在这里先谢了!

来源:百度文库 编辑:高考问答 时间:2024/05/01 12:59:01
这是一道解一元一次方程组的编程题,采用线性代数的解题思路,一直找不到其中错误的原因,希望各位帮忙调试一下!谢了!
程序如下:
#include<stdio.h>
main()
{ int i=0,j=0,k=0,n;
double a[100][100],b;
printf("输入方程组未知数个数:n (n<=100) \n");
scanf("%d",&n);
if(n>100) exit(0);

printf("输入方程组的系数矩阵:n\n"); //输入系数
for(i=0;i<n;i++)
for(j=0;j<=n;j++)
scanf("%lf",&a[i][j]);

for(k=0;k<=n;k++) //计算过程(下三角)“k”为对角线数
for(i=0;i<n-1;i++)
{ b=a[i+1][k]/a[k][k];
for(j=0;j<=n;j++)
a[i+1][j]-=b*a[i][j];
}

for(k=1;k<n;k++) //计算过程(上三角)
for(i=0;i<n-1;i++)
{ b=a[k][k]/a[i][k];
for(j=1;j<=n;j++)
a[i][j]-=b*a[i+1][j];
}

for(i=0;i<n-1;i++) //距阵标准化 a[i][n]/=-a[i][i];

for(i=0;i<n;i++) //输出系数矩阵
for(j=0;j<=n;j++)
{ printf("%lf ",a[i][j]);
if(j==n) printf("\n");
}

for(j=0;j<n;j++) //输出结果
printf("方程的解是:%lf \n",a[i][n]);
}
“for(j=0;j<n;j++) //输出结果
printf("方程的解是:%lf \n",a[i][n]);
} ” 其中a[i][n]中的i换成j是正确的。
但问题的重点在
for(k=0;k<=n;k++) //计算过程(下三角)“k”为对角线数
for(i=0;i<n-1;i++)
{ b=a[i+1][k]/a[k][k];
for(j=0;j<=n;j++)
a[i+1][j]-=b*a[i][j];
}
上,它根本不能转化为下三角,可我实在是找不到其中的原因,麻烦各位了!

最后一段中
for(j=0;j<n;j++) //输出结果
printf("方程的解是:%lf \n",a[i][n]);

循环变量里使用的是 j 而printf的时候是a[i][n], 使用的是i .
是不是这里写错了?