| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 377 人关注过本帖
标题:大家帮我看下,程序错在哪了
只看楼主 加入收藏
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
快速回复:大家帮我看下,程序错在哪了
数据加载中...
 
   



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

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