多重循环打印图形————17.杨辉三角

要求说明:打印出杨辉三角,行数可自行输入。

解:首先找出杨辉三角的规律:1,每一行第一列为1;  2,对角线上数字也为1; 3,其余数字都等于它上一行同位置与前一项的和

此题,我给出两种方式解决。1,完全输入数据后,遍历输出; 2,边输入边输出

1.**************************************************************

#include<stdio.h>  
#include<string.h> 
int num[35][35];   // 设置二维数组,行数小于35
int main()  
{  
    memset(num,0,sizeof(num));  // 数组清0
    int n,i,j;                  
    scanf("%d",&n);             //输入待打印行数
    for(i=0;i<n;i++)            //for 循环i范围从1到行数n
    {  
        num[i][i]=1;            //对角线元素都为1
        num[i][0]=1;            //每行第一列元素都为1
    }  
    for(i=3;i<n;i++)            //for循环从第三行开始到第n行
    {  
        for(j=1;j<i;j++)        //for循环从第二列开始到该行行数减一列为止
        {  
            num[i][j]=num[i-1][j-1]+num[i-1][j];  //第i行j列等于上一行同位置与前一项的和
        }  
    }  
    for(i=0;i<n;i++)  
    {  
        for(j=0;j<=i;j++)  
        {  
            printf("%d ",num[i][j]);  // for循环遍历输出
        }  
        printf("\n");       //换行
    }  
    return 0;  

}   

样例输入输出:

8

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 

*********************************************************

2.*****************************************************

#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
    int n;
    scanf("%d",&n);         //输入打印的杨辉三角行数
     int a[35][35];         //最大行数小于35行
     memset(a,0,sizeof(a)); //对数组清0
    int i,j;
    
    for(i = 1; i <= n;i ++)     //循环i从1到n行
    {
        a[i][0] = 1;            //每行第一个数字置1
        printf("%d ",a[i][0]);  //打印该数
        for(j = 1; j <= n;j ++) //每行第二个数开始到最后
        {
            a[i][j] =a[i-1][j-1]+a[i-1][j] ;    //除第一列数字,其余数字等于它上一行同位置数字加上前一列数字(由于开始对数组清0,故最后一列亦可由此计算)
            if(a[i][j] == 0) //判断,最后位空位置两0和为0,结束换行;
                break;
            printf("%d",a[i][j]); //打印该数字
            if(a[i][j] != 1)      //判断数字是否为1,是1代表此行结束,不打印多余的空格
                printf(" ");
            
        }
        printf("\n");      //换行
    }




    return 0;
}

样例输入输出:11

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 10 45 120 210 252 210 120 45 10 1

******************************************8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值