原创 闫小林 C语言入门到精通 2020-12-04

收录于话题

#小林C语言实战

103个

“要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人…万中无一”

——包租婆
这道理放在C语言学习上也一并受用。在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历的是日积月累的学习。那么如何学习呢?当然是每天都练习一道C语言题目!!

C语言 | 杨辉三角_C语言


作者

闫小林

白天搬砖,晚上做梦。我有故事,你有酒么?


例26:C语言实现输出杨辉三角。


解题思路:对于这道题,小林拆分为3部分进行讲解


第一部分,对有特点的数(每行开头和结束的数都是1)进行赋值:


for(i=0;i<10;i++)//for循环 
  {
    array[i][i]=1;//给二维数组的每一行的最后一个赋值为1 
    array[i][0]=1;//第二维数组的每一行的开头赋值为1 
  }


第二部分,给中间的数进行赋值:

for(i=2;i<10;i++)//外层循环限制行 
  {
    for(j=1;j<=i-1;j++)//内层循环限制列 
    {
      array[i][j]=array[i-1][j]+array[i-1][j-1];//给中间的数赋值
    } 
  }

第三部分,就是把上面赋值后的二维数组,遍历输出即可;

for(i=0;i<10;i++)//外层循环限制行 
  {
    for(j=0;j<=i;j++)//内层循环限制列 
    {
      printf("%6d",array[i][j]);//输出二维数组,宽度为6 
    }
  printf("\n");//换行 
  }

源代码演示:
#include<stdio.h>//头文件 
int main()//主函数入口 
{
  int i,j;//定义整型变量 
  int array[10][10];//定义二维数组 
  for(i=0;i<10;i++)//for循环 
  {
    array[i][i]=1;//给二维数组的每一行的最后一个赋值为1 
    array[i][0]=1;//第二维数组的每一行的开头赋值为1 
  }
  
  for(i=2;i<10;i++)//外层循环限制行 
  {
    for(j=1;j<=i-1;j++)//内层循环限制列 
    {
      array[i][j]=array[i-1][j]+array[i-1][j-1];//给中间的数赋值
    } 
  }
  
  for(i=0;i<10;i++)//外层循环限制行 
  {
    for(j=0;j<=i;j++)//内层循环限制列 
    {
      printf("%6d",array[i][j]);//输出二维数组,宽度为6 
    }
  printf("\n");//换行 
  }
  return 0;//函数返回值为0 
}

编译运行结果如下:

C语言 | 杨辉三角_C语言_02