| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 808 人关注过本帖
标题:[求助]用二维数组打印杨辉三角
只看楼主 加入收藏
CCVC果冻爽
Rank: 4
等 级:业余侠客
帖 子:116
专家分:209
注 册:2009-7-31
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
[求助]用二维数组打印杨辉三角
打印杨辉三角:
#include <stdio.h>
main()
{
    int i,j;
    int a[10][10];
    printf("\n");
    for(i=0;i<10;i++)
    {
        a[i][0]=1;
        a[i][i]=1;
    }
    for(i=2;i<10;i++)
    for(j=1;j<i;j++)
    a[i][j]=a[i-1][j-1]+a[i-1][j];
    for(i=1;i<10;i++)
    {
        for(j=0;j<=i;j++)
            printf("%5d",a[i][j]);
            printf("\n");
     
    }
}
为什么结果是这样:

    1    1
    1    2    1
    1    3    3    1
    1    4    6    4    1
    1    5   10   10    5    1
    1    6   15   20   15    6    1
    1    7   21   35   35   21    7    1
    1    8   28   56   70   56   28    8    1
    1    9   36   84  126  126   84   36    9    1
我期待的应该是
    1
    1    1
    1    2    1
    1    3    3    1
    1    4    6    4    1
    1    5   10   10    5    1
    1    6   15   20   15    6    1
    1    7   21   35   35   21    7    1
    1    8   28   56   70   56   28    8    1
    1    9   36   84  126  126   84   36    9    1
哪位高手看下..3Q先...
搜索更多相关主题的帖子: 杨辉三角 打印 
2009-08-06 17:54
soler
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:181
专家分:1077
注 册:2005-7-16
收藏
得分:7 
结尾输出的地方。
for(i=1;i<10;i++)

改成i=0
2009-08-06 18:15
wwe
Rank: 2
来 自:中国安徽
等 级:论坛游民
帖 子:37
专家分:37
注 册:2009-8-3
收藏
得分:7 
#include "stdio.h"
main()
{
  int a[10][10],i,j;
  for(i=0;i<10;i++)  
   for(j=0;j<=i;j++)  
    {
      a[i][j+1]=a[i-1][j+1]+a[i-1][j];
      a[i][0]=1;
      printf("%d ",a[i][j]);
      if(j==i) printf("\n");
    }   
}
这样看起来简单些!输出的结果也是正确的。

[ 本帖最后由 wwe 于 2009-8-6 18:59 编辑 ]
2009-08-06 18:56
CCVC果冻爽
Rank: 4
等 级:业余侠客
帖 子:116
专家分:209
注 册:2009-7-31
收藏
得分:0 
天啊,你们运过这些代码吗?没把我吓死。。。
2009-08-07 09:04
CCVC果冻爽
Rank: 4
等 级:业余侠客
帖 子:116
专家分:209
注 册:2009-7-31
收藏
得分:0 
#include <stdio.h>
main()
{
    int s[10][10];
    int i,j,k;
    for(i=0;i<10;i++)
    {
        s[i][i]=1;
        s[i][0]=1;
    }
    for(i=2;i<10;i++)
        for(j=1;j<i;j++)
            s[i][j]=s[i-1][j-1]+s[i-1][j];
        printf("\n");
    for(i=0;i<10;i++)
    {
        for(k=i;k<=10;k++)
            printf("  ");
        for(j=0;j<=i;j++)
            printf("%4d",s[i][j]);
        printf("\n");
    }
}
终于搞定了,哈哈哈哈哈哈哈!
2009-08-07 09:15
CCVC果冻爽
Rank: 4
等 级:业余侠客
帖 子:116
专家分:209
注 册:2009-7-31
收藏
得分:0 
以下是引用wwe在2009-8-6 18:56的发言:#include "stdio.h" main() {   int a[10][10],i,j;   for(i=0;i<10;i++)     for(j=0;j<=i;j++)      {       a[j+1]=a[j+1]+a[j];       a[0]=1;       printf("%d ",a[j]);       if(j==i) p ...
你的代码顺序错了,而且少了句话,应该这样的
#include "stdio.h"
main()
{
  int a[10][10],i,j;
  for(i=0;i<10;i++)  
   for(j=0;j<=i;j++)  
    {  
      a[i][0]=1;
      a[i][i]=1;
      a[i][j+1]=a[i-1][j+1]+a[i-1][j];
      printf("%d ",a[i][j]);
      if(j==i) printf("\n");
    }   
}
2009-08-07 10:17
CCVC果冻爽
Rank: 4
等 级:业余侠客
帖 子:116
专家分:209
注 册:2009-7-31
收藏
得分:0 
以下是引用soler在2009-8-6 18:15的发言:结尾输出的地方。for(i=1;i<10;i++)改成i=0
这点我后来发现了,但不是主要原因。
2009-08-07 10:18
wwe
Rank: 2
来 自:中国安徽
等 级:论坛游民
帖 子:37
专家分:37
注 册:2009-8-3
收藏
得分:0 
很好!
2009-08-07 11:16
CCVC果冻爽
Rank: 4
等 级:业余侠客
帖 子:116
专家分:209
注 册:2009-7-31
收藏
得分:0 
不过你的代码的确比我的简单多了。厉害啊!
2009-08-07 17:04
快速回复:[求助]用二维数组打印杨辉三角
数据加载中...
 
   



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

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