首页 > 编程笔记

C语言杨辉三角的输出

本文我们使用C语言来输出杨辉三角。我们将杨辉三角中的每个数字先存储到二维数组中,然后再使用循环输出数组中的元素。

杨辉三角的特点:
  1. 每行数字左右对称,由1开始逐渐变大,然后变小,回到1;
  2. 第n行的数字个数为n个;
  3. 第n行数字和为2n-1;
  4. 除首尾数字是1外,中间每个数字等于其正上方和左上方数字之和。

如下所示就是一个杨辉三角:
1
1   1
1   2   1
1   3   3   1
1   4   6   4   1
1   5  10  10   5   1

下面是输出杨辉三角的C语言代码:
#include <stdio.h>
int main()
{
  int i,j;
  int a[10][10];
  for(i=0;i<10;i++)   /*初始化第0行和对角线元素*/
  {
    a[i][0]=1;
    a[i][i]=1;
  }
  for(i=2;i<10;i++)   /*公式计算元素值*/
  {
    for(j=1;j<i;j++)
      a[i][j]=a[i-1][j-1]+a[i-1][j];
  }
  for(i=0;i<10;i++)   /*输出数组*/
  {
    for(j=0;j<=i;j++)
      printf("%5d",a[i][j]);
    printf("\n");
  }
  return 0;
}
运行结果:
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
根据杨辉三角的特点分析,第 0 列和对角线元素的值都是 1,在此基础上计算中间其他元素,然后存储到数组中。数组中只保存每行的有效数据。

优秀文章