(第十列)C语言基础练习:打印杨辉三角,文字解释太烦,直接代码解析。

本文涉及的产品
云解析 DNS,旗舰版 1个月
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
简介: (第十列)C语言基础练习:打印杨辉三角,文字解释太烦,直接代码解析。

题目:打印杨辉三角前十行,如下:

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


代码见真知:

定义:

  int arry[10][10];  //首先定义二维数组,有行有列
  int i,j;

1是比较明显的规律,首先解决:

    //由题目可知,1所在的行和列是有规律的
  for(i=0;i<10;i++)
  {
    arry[i][0]=1;  //由题目可知第一例全为1
    arry[i][i]=1;  //由题可知第i行i列也全是1
  }

中间部分,找规律:

  for(i=2;i<10;i++)  //行循环,由于1已结解决,所以直接从第三行开始
  {
    for(j=1;j<i;j++)  //第一例全为1,已解决,直接从第二列开始
    {
            //中间的某一个数等于它上一行,它所在的一列的数与前一列的数之和
      arry[i][j]=arry[i-1][j]+arry[i-1][j-1];
    } 
  }

最后输出即可。


完整代码:

#include<stdio.h>
int main()
{
  int arry[10][10];
  int i,j;
  for(i=0;i<10;i++)
  {
    arry[i][0]=1;
    arry[i][i]=1;
  }
  for(i=2;i<10;i++)
  {
    for(j=1;j<i;j++)
    {
      arry[i][j]=arry[i-1][j]+arry[i-1][j-1];
    }   
  }
  for(i=0;i<10;i++)
  {
    for(j=0;j<=i;j++){
      printf("%d  ",arry[i][j]);
    }
    printf("\n");
  }
  return 0;
}



相关文章
|
1天前
|
存储 安全 Serverless
扫雷游戏C语言代码实现——万字长文超详细,手把手教你实现,新手也能学会
扫雷游戏C语言代码实现——万字长文超详细,手把手教你实现,新手也能学会
|
1天前
|
算法 编译器 C语言
猜数字游戏C语言代码实现
猜数字游戏C语言代码实现
|
2天前
|
C语言
|
2天前
|
C语言
|
2天前
|
C语言
C语言练习代码第一篇
C语言练习代码第一篇
|
2天前
|
C语言
|
2天前
|
编译器 C语言
|
2天前
|
人工智能 JavaScript C语言
|
2天前
|
机器学习/深度学习 C语言 Windows
C语言的管理系统代码
C语言学生宿舍管理系统代码
|
2天前
|
存储 机器学习/深度学习 编译器
C语言代码学习笔记
<编程精粹:编写高质量C语言代码> 读书笔记

热门文章

最新文章

推荐镜像

更多