标题:杨辉三角你考试会考吗?
只看楼主
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
结帖率:98.26%
 问题点数:0 回复次数:5 
杨辉三角你考试会考吗?
晚上写了两个关于杨辉三角的程序,这两个程序输出的图形的形状不一样,贴在这里供大家看看吧!!

之所以写这两个程序,是觉得现在是期末了嘛,有的同学马上要考试了呀,可能会考到这样的题。所以就写了下来!

这是第一个程序的图形:


这个是代码:
程序代码:
# include <stdio.h>

int a[1000][1000] ;

int main()
{
    int n ;
    int i , j ;
    while(scanf("%d" , &n) != EOF && n != 0)
    {
        for(i = 1 ; i <= n ; i++)
        {
            for(j = 1 ; j <= 2 * i - 1 ; j++)
            {
                if(j == 1 || j == 2 * i  - 1)
                {
                    a[i][j] = 1 ;
                    printf("1") ;
                    continue ;
                }
                if(j % 2)
                {
                    a[i][j] = a[i-1][j- 2] + a[i-1][j] ;//这块是关键的地方
                    printf("%d" , a[i][j]) ;
                }
                else
                    printf(" ") ;   
            }
            printf("\n") ;
        }
        printf("\n") ;
    }
    return 0 ;
}

这个是第二个程序的图形:


这个是代码:
程序代码:
# include <stdio.h>

int a[1000][1000] ;

int main()
{
    int n ;
    int i , j ;
    while(scanf("%d" , &n) != EOF && n != 0)
    {
        for(i = 1 ; i <= n ; i++)
        {
            for(j = 1 ; j <= n - i ; j++)
                printf(" ") ;
            a[i][1] = a[i][2*i-1] = 1 ;
            for(j = 1 ; j <= 2 * i - 1 ; j++)
            {
                if(j == 1 || j == 2 * i - 1)
                {
                    printf("1") ;
                    continue ;
                }
                if(j % 2 == 0)
                    printf(" ") ;   
                else
                {
                    a[i][j] = a[i-1][j-2] + a[i-1][j] ;
                    printf("%d" , a[i][j]) ;
                }
            }
            printf("\n") ;
        }
    }
    return 0 ;
}



搜索更多相关主题的帖子: 考试 会考 杨辉三角 
2010-12-13 22:12
五当家
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1112
专家分:3674
注 册:2010-10-20
得分:0 
#include<stdio.h>
#define m 10
void main()
{
    int i,j;
    int a[m][m];
        for(i=0;i<m;i++)
        {
            for(j=0;j<=i;j++)
            {   
                if(i==j||j==0||i<1||j<1)
                    a[i][j]=1;
                else
                a[i][j]=a[i-1][j]+a[i-1][j-1];
                printf("%d\t",a[i][j]);
            }
            printf("\n");   
        }   
}
这是我写的.

经验积累中............
2010-12-13 22:26
五当家
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1112
专家分:3674
注 册:2010-10-20
得分:0 
#include<stdio.h>
#define m 9
void main()
{
    int i,j;
    int a[m][m];
        for(i=0;i<m;i++)
        {
            for(j=0;j<=i;j++)
            {   
                if(i==j||j==0)
                    a[i][j]=1;
                else
                a[i][j]=a[i-1][j]+a[i-1][j-1];
                printf("%d\t",a[i][j]);
            }
            printf("\n");   
        }   
}
第二种.

经验积累中............
2010-12-13 22:28
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
得分:0 
你写的那个如果输入的数太大的话屏幕都装不下。有本事按照你的这种写法将m设置为可以从键盘上输入的数!!!

愿用余生致力编程
2010-12-13 22:33
五当家
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1112
专家分:3674
注 册:2010-10-20
得分:0 
#include<stdio.h>
void main()
{
    int i,j,m;
    scanf("%d",&m);
    int a[100][100];
        for(i=0;i<m;i++)
        {
            for(j=0;j<=i;j++)
            {   
                if(i==j||j==0||i<1||j<1)
                    a[i][j]=1;
                else
                a[i][j]=a[i-1][j]+a[i-1][j-1];
                printf("%d\t",a[i][j]);
            }
            printf("\n");   
        }   
}
从键盘输入.

经验积累中............
2010-12-13 22:39
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
得分:0 
你没有看明白我说的话吗??

愿用余生致力编程
2010-12-13 22:42



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




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

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