C语言十五弹---打印杨辉三角

简介: C语言十五弹---打印杨辉三角

C语言实现打印杨辉三角

特点:1.每个数等于它上方两数之和。

2.每行数字左右对称,由1开始逐渐变大。

3.第n行的数字有n项。

一、打印空格

由图可看出第一行有 n - 1个空格,随着row的增加空格逐渐减少,故此打印空格条件为 打印行数 - row

for (int i = 0; i < 10-row; i++)//空格
{
  printf("  ");
}

二、打印外层1

由图观察可知 外层被1囊括,那么仔细观察便发现,每行初始位置和行列相等时为1。

if ((arr[row][0] = 1) || (row == col))//外部 二者满足一个就需要打印 故使用||
{
  arr[row][col] = 1;
}

三、打印内部

由图可以观察到 下一行数字等于本身上一行位置的前一个位置和后一个位置之和 。那么就只需要找到两个位置然后求和等于本身即可。

  if (row > 1 && col >= 1)//从第二行开始存在中间数据 并满足条件
  {
    arr[row][col] = arr[row - 1][col - 1] + arr[row - 1][col];
  }

总代码

#include <stdio.h>
#define ROW 10//宏定义(命名方法默认全大写) 可以修改杨辉三角层数
#define COL 10
int main()
{
  int arr[ROW][COL] = { 0 };
  int row = 1, col = 1;
  for (row = 0; row < ROW; row++)
  {
    for (int i = 0; i < ROW-row; i++)//空格
    {
      printf("  ");
    }
    for (col = 0; col <= row; col++)
    {
      if ((arr[row][0] = 1) || (row == col))//外部
      {
        arr[row][col] = 1;
      }
      if (row > 1 && col >= 1)//从第二行开始存在中间数据 并满足条件
      {
        arr[row][col] = arr[row - 1][col - 1] + arr[row - 1][col];
      }
      printf("%4d", arr[row][col]);//%4d 能够打印一个等边杨辉三角
    }
    printf("\n");
  }
  return 0;
}


相关文章
|
5月前
|
算法 C语言
C语言:杨氏矩阵、杨氏三角、单身狗1与单身狗2
C语言:杨氏矩阵、杨氏三角、单身狗1与单身狗2
48 0
|
12月前
|
C语言
C语言之输出杨辉三角的教程
C语言之输出杨辉三角的教程
|
5月前
|
存储 C语言
说出来你可能不信, 杨辉三角形用C语言实现其实很简单!
说出来你可能不信, 杨辉三角形用C语言实现其实很简单!
|
5月前
|
C语言
【C 语言经典100例】C 练习实例61 - 杨辉三角形
【C 语言经典100例】C 练习实例61 - 杨辉三角形
28 0
|
11月前
|
C语言
【C语言刷题】喝汽水问题、上三角矩阵判定以及矩阵相等判定
【C语言刷题】喝汽水问题、上三角矩阵判定以及矩阵相等判定
74 0
【C语言刷题】喝汽水问题、上三角矩阵判定以及矩阵相等判定
|
11月前
|
存储 算法 C语言
【C语言刷题】猜名次、猜凶手、杨辉三角、杨氏矩阵、字符串左旋、判断是否为左旋子串
【C语言刷题】猜名次、猜凶手、杨辉三角、杨氏矩阵、字符串左旋、判断是否为左旋子串
70 0
|
C语言
【C语言】杨辉三角和练习
【C语言】杨辉三角和练习
67 0
【C语言】杨辉三角和练习
|
存储 C语言
【C语言练习】杨氏矩阵、杨辉三角
【C语言练习】杨氏矩阵、杨辉三角
70 0
|
C语言
C语言实例:创建各类三角形图案(杨辉三角,弗洛伊德三角形....)
C语言实例:创建各类三角形图案(杨辉三角,弗洛伊德三角形....)
129 0
|
C语言
【C语言】杨辉三角
【C语言】杨辉三角
83 0