求退人间界哪章有肉:用C++改错:输出下三角

来源:百度文库 编辑:高校问答 时间:2024/04/24 06:04:57
麻烦各位帮忙找出下面程序段中的不能输出下三角的错误在哪里,给出满意答案的追加20分. 主要错误在"计算过程(下三角)“k”为对角线数"中的内容.谢了!

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]=a[i+1][j]-b*a[i][j];
}
cani1985:你那改法不对啊,我也知道是循环次数问题,可是就是找不出来,可以给我一个详细点的程序段吗,谢谢了!
我用的是线性代数的方法解线性方程,这里只是其中的一部分,麻烦各位了!希望能给我一个详细点的答案. 谢谢!

看了一下,我觉得应该是
for循环里面的循环次数问题
第2个for,应该是for(j=0;j<n;j++) ,你那用了=号,就会出现未赋值的元素。
其他的for循环也是一样,注意循环次数~~~`

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++) //here
scanf("%lf",&a[i][j]);

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

这是什么方法?是不是平方根法?