| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 583 人关注过本帖, 1 人收藏
标题:不晓得一天能发几贴,关于杨辉三角形看不出错误啊啊,求指点
只看楼主 加入收藏
hypocrisy
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-11-7
结帖率:33.33%
收藏(1)
 问题点数:0 回复次数:3 
不晓得一天能发几贴,关于杨辉三角形看不出错误啊啊,求指点
Description
 

还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1


 
 
Input
 

输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1<=n<=30),表示将要输出的杨辉三角的层数。

 
 
Output
 

对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一个杨辉三角后面加一个空行。

 
 
Sample Input
 
2 3
Sample Output
 
1
1 1

1
1 1
1 2 1


我的答案:
#include<stdio.h>
int main()
{
    int a[30][30],i,j,n;
   
    while(scanf("%d",&n)!=EOF)
    {
        for(i=0;i<=n;i++)
        {
            for(j=0;j<=i;j++)
            {
                if(j==0)
                    a[i][j]=1;
                if(j<i)
            a[i][j]=a[i-1][j-1]+a[i-1][j];
            if(j==i)
                a[i][j]=1;
            }
            for(i=0;i<=n;i++)
                for(j=0;j<=i;j++)
                    printf("%d ",a[i][j]);
            
            printf("\n");
        }
        
    }
    return 0;
}

无法运行- -求教啊
搜索更多相关主题的帖子: 杨辉三角 include 三角形 
2012-11-07 22:32
fan149101527
Rank: 1
来 自:河南郑州
等 级:新手上路
帖 子:12
专家分:2
注 册:2012-11-5
收藏
得分:0 
while循环条件有问题,其余参照下面的程序,注意循环条件
#include<stdio.h>
 int main(){
    int n,i,j;
    printf("输入您想要的层数:\n");
    scanf("%d",&n);
    int num[n][n];
    num[0][0] = 1;
    num[1][0] = 1;
    num[1][1] = 1;
    for(i=2; i<n; i++){
        for(j=1; j<i; j++){
            num[i][0] = 1;
            num[i][i] = 1;
            num[i][j] = num[i-1][j-1] + num[i-1][j];
   
        }
    }
    for(i=0; i<n; i++){
        printf("\n");
        for(j=0; j<=i; j++){
            printf("%d  ",num[i][j]);
        }
    }
 }

小小的人,大大的梦,未来,我们一起加油。
2012-11-07 23:31
柳林
Rank: 2
等 级:论坛游民
帖 子:5
专家分:20
注 册:2012-11-7
收藏
得分:0 
#include<stdio.h>
 int main()
 {
     int a[30][30],i,j,n;
     
    while(scanf("%d",&n)!=EOF)
     {
         for(i=0;i<n;i++)
         {
             for(j=0;j<=i;j++)
             {
                 if(j==0)
                     a[i][j]=1;
                 if(j<i&&j!=0)
                     a[i][j]=a[i-1][j-1]+a[i-1][j];
                 if(j==i)
                     a[i][j]=1;
             }
         }  
         for(i=0;i<n;i++)
         {   
             for(j=0;j<=i;j++)
                printf("%d ",a[i][j]);
            
                printf("\n");
         }
         
         
     }
     return 0;
 }
程序应该这么修改,有两个问题:1.for循环对应的括号不对;2. 第一个if(j==0),那么if(j<i&&j!=0)中必须去掉j==0,
运行结果现在应该是对的
2012-11-07 23:44
柳林
Rank: 2
等 级:论坛游民
帖 子:5
专家分:20
注 册:2012-11-7
收藏
得分:0 
回复 3楼 柳林
还有注意你是从第0行开始的,所以最后一行是n-1,所以是i<n
2012-11-07 23:55
快速回复:不晓得一天能发几贴,关于杨辉三角形看不出错误啊啊,求指点
数据加载中...
 
   



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

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