标题:大家帮我看下,程序错在哪了
只看楼主
cailifeng
Rank: 1
来 自:福建
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-9-25
结帖率:100%
已结贴  问题点数:20 回复次数:3 
大家帮我看下,程序错在哪了
编了一个杨辉三角形,只有第一次输出对了,以后都错了,大家帮我看一下错在哪了,程序如下:
#include <stdio.h>
void main()
{
 int a[6][6],i,j;
 for (i=0;i<6;i++)
 {
     for (j=0;j<i+2;j++)
     {
     a[i][0]=1;
     a[i][j]=1;
     a[i][j]=a[i-1][j-1]+a[i-1][j];
     }
 }
 for (i=0;i<6;i++)
 {
     for (j=0;j<=i;j++)
     {
     printf("%-3d",a[i][j]);
     }
     printf("\n");
 }
}

搜索更多相关主题的帖子: include 三角形 
2009-10-06 01:42
chenfeng201
Rank: 2
等 级:论坛游民
帖 子:11
专家分:31
注 册:2009-10-5
得分:20 
这个比较简单,我还能看得懂
应该是赋值语句出错了:
a[i][0]=1;
a[i][j]=1;
a[i][j]=a[i-1][j-1]+a[i-1][j];
其中a[i][j]=1错了,按照你的思路,应该为:a[i][i]=1
2009-10-06 09:06
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
得分:0 
for (j=0;j<i+2;j++)
     {
     a[i][0]=1;
     a[i][j]=1;
     a[i][j]=a[i-1][j-1]+a[i-1][j];
     }
在这个循环里,你先把第一列和每行最后一个数赋值1,然后向把其他位置的数通过a[i][j]=a[i-1][j-1]+a[i-1][j]; 来求出,但是你要说明此事的a[i][j]中的j不能为0,并且i也不能等于j。
你应该用if else 语句来对三种情况赋值。
可以修改如下:
/* Note:Your choice is C IDE */
#include <stdio.h>
void main()
{
int a[6][6],i,j;
for (i=0;i<6;i++)
{
     for (j=0;j<i+2;j++)
     {
     if(j==0)
     a[i][j]=1;
     else if (i==j)
     a[i][j]=1;
     else
     a[i][j]=a[i-1][j-1]+a[i-1][j];
     }
}
for (i=0;i<6;i++)
{
     for (j=0;j<=i;j++)
     {
     printf("%-3d",a[i][j]);
     }
     printf("\n");
}
}


[ 本帖最后由 m456m654 于 2009-10-6 09:22 编辑 ]
2009-10-06 09:19
cailifeng
Rank: 1
来 自:福建
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-9-25
得分:0 
大意了!!

谢谢!!!!
2009-10-06 16:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-287672-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.312989 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved