| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1905 人关注过本帖
标题:杨辉三角形
只看楼主 加入收藏
linlinaa
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-6-4
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:12 
杨辉三角形
#include<stdio.h>
#define space 32
#define N 30

void main()
{
    int i,j,n;
    int sanjia[N][N];
    printf("输入三角矩阵的阶数:");
    scanf("%d",&n);
/*构造杨辉三角形的三角形矩阵*/
    for(i=0;i<n;i++)
    {
        sanjia[i][0]=1;
        sanjia[i][i]=1;
    }

    for(i=2;i<n;i++)
        for(j=1;j<=i;j++)
        {
            sanjia[i][j]=sanjia[i-1][j-1]+sanjia[i-1][j];
        }
/*输出杨辉三角形的三角形矩阵*/
   
    for(i;i<n;i++)
    {   
        for(j=0;j<n-i;i++)
        printf("%3c",space);
        for(j=0;j<=i;j++)
        {
            printf("%3c",space);
            printf("%3d",sanjia[i][j]);
        }
        printf("\n");
    }
}

请求高手指点错误!
搜索更多相关主题的帖子: 杨辉三角 
2010-06-17 21:42
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:5 
#include<stdio.h>
#define space 32
#define N 30

void main()
{
    int i,j,n;
    int sanjia[N][N]={0};
    printf("输入三角矩阵的阶数:");
    scanf("%d",&n);
/*构造杨辉三角形的三角形矩阵*/
    for(i=0;i<n;i++)
    {
        sanjia[i][0]=1;
    }
    for(i=0;i<n;i++)
    {
        sanjia[i][i]=1;
    }

    for(i=2;i<n;i++)
        for(j=1;j<i;j++)
        {
            sanjia[i][j]=sanjia[i-1][j-1]+sanjia[i-1][j];
        }
/*输出杨辉三角形的三角形矩阵*/
   
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        {
            if(sanjia[i][j]!=0)
                printf("%4d",sanjia[i][j]);
            if(j==n-1)
                printf("\n");
}

}这是我给你改的
2010-06-17 22:05
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:0 
#include<stdio.h>
void main()
{
    int i,j,a[10][10]={0};
    for(i=0;i<=9;i++)
        a[i][i]=1;/*对角线元素都为1*/
    for(i=1;i<=9;i++)
        a[i][0]=1;/*使第0列元素都为1*/
    for(i=2;i<=9;i++)
    {
        for(j=1;j<i;j++)
        {
            a[i][j]=a[i-1][j-1]+a[i-1][j];
        }
        
    }
    for(i=0;i<=9;i++)
        for(j=0;j<=9;j++)
        {
            if(a[i][j]!=0)
                printf("%4d",a[i][j]);
            if(j==9)
                printf("\n");
        }
}
这是我之前做的十阶的,当然数组你还可以定打点
2010-06-17 22:07
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:0 
杨辉三角一个一维数组不就搞定了……
2010-06-17 23:23
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:0 
回复 4楼 heartnheart
哦,这个没试过。您能把代码贴出来看看吗
2010-06-18 07:08
张君
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:57
专家分:113
注 册:2010-5-13
收藏
得分:0 
回复 4楼 heartnheart
你写一个一维树组给我看看吧..,正好学习一下我只会2维的.

做自己就好,保持自己,记得微笑
2010-06-18 08:39
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:3 
程序代码:
#include<stdio.h>
//#include <stdlib.h>
int a[100];

int main()
{
          
     
        a[0] = 1;
       
        int cnt = 1;
        printf("how many lins?\n");
        int k;
        scanf("%d",&k);
        printf("%5d\n",1);
        for(int i = 1; i<k; i++){
                for(int j = cnt;  j>0;j--){
                        a[j] += a[j -1];
                }
               
                for(int j = 0; a[j];j++){
                        printf("%5d",a[j]);       
                }
                cnt++;
                printf("\n");      
               
        }
        //system("pause");
}
一维数组版本……
2010-06-18 09:56
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:2 
回复 7楼 heartnheart
编译出错啊!下面是系统报的错误:



Compiling...
一维数组之杨辉三角.cpp
f:\c\一维数组之杨辉三角.cpp(23) : error C2374: 'j' : redefinition; multiple initialization
        f:\c\一维数组之杨辉三角.cpp(18) : see declaration of 'j'
f:\c\一维数组之杨辉三角.cpp(33) : warning C4508: 'main' : function should return a value; 'void' return type assumed
执行 cl.exe 时出错.

一维数组之杨辉三角.obj - 1 error(s), 0 warning(s)
2010-06-18 15:43
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:0 
在我的编译器里改成这这样就行了:
#include<stdio.h>

int a[100];

int main()
{
         
     
        a[0] = 1;
      
        int cnt = 1,j;
        printf("how many lins?\n");
        int k;
        scanf("%d",&k);
        printf("%5d\n",1);
        for(int i = 1; i<k; i++)
        {
                for( j = cnt;  j>0;j--)
                {
                        a[j] += a[j -1];
                }
               
                for( j = 0; a[j];j++)
                {
                        printf("%5d",a[j]);      
                }
                cnt++;
                printf("\n");      
               
        }
        //syst

}我用的是vc++6.0
2010-06-18 15:46
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:0 
回复 9楼 遮天云
你的编译器不支持c99所以编译出错…
2010-06-18 16:03
快速回复:杨辉三角形
数据加载中...
 
   



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

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