简易的杨辉三角

利用二维数组,可以更加清晰的理解杨辉三角的规律:

将二维数组看成表格形式,总结杨辉三角规律如上。

  简易的代码:(只是为了理解用)

#include <stdio.h> 
void main()
{ 
  int num[10][10];          //获取一个二维数组 
  int i,j;               //变量(下标) i,j 。分别控制行与列 
  for(i=0;i<10;i++){         //下标从 0 开始 
    num[i][0]=1;          //第一列的数字都为 1 
    num[i][i]=1;          //两变量相等时(对角线)数值为 1 
  }
    for(i=2;i<10;i++){      //从第 3 行开始算(前两行数值都为 1),所以 i=2 
      for(j=1;j<i;j++){   /*从第 2 列开始算 ,第 1 列数值都为1, 当 j = i 时 表示二维数组对角线,
                      这里对角线都为 1,所以此处 j < i
*/         num[i][j]=num[i-1][j-1]+num[i-1][j];       }     }     /*对数组进行遍历输出,i,j 都从 0 开始循环*/         for(i=0;i<10;i++){           for(j=0;j<=i;j++){ //j=i为对角线 遍历输出时应该输出             printf("%d\t",num[i][j]);           }               printf("\n"); //外层循环每循环一圈 换行一次         } }

 

效果图:

 

稍微进行修改,做成可以控制高度的(只是加了一个变量而已):

 

#include <stdio.h> 
void main(){ 
  int hight;
  printf("请输入杨辉三角的高度:\t");
  scanf("%d",&hight);
  int num[hight][hight];        //获取一个二维数组 
  int i,j;                 //变量(下标) i,j 。分别控制行与列 
  for(i=0;i<hight;i++){         //下标从 0 开始 
    num[i][0]=1;            //第一列的数字都为 1 
    num[i][i]=1;            //两变量相等时(对角线)数值为 1 
  }
    for(i=2;i<hight;i++){       //从第 3 行开始算(前两行数值都为 1),所以 i=2 
      for(j=1;j<i;j++){      /*从第 2 列开始算 ,第 1 列数值都为1
                       当 j = i 时 为二维数组对角线,这里对角线都为 1,所以此处 j < i */ 
        num[i][j]=num[i-1][j-1]+num[i-1][j];
      }
    }              /*对数组进行遍历输出,i,j 都从 0 开始循环*/ 
  for(i=0;i<hight;i++){
    for(j=0;j<=i;j++){   //j=i为对角线 遍历输出时应该输出 
      printf("%d\t",num[i][j]);
    }
    printf("\n");      //外层循环每循环一圈 换行一次 
  }
}

 

效果图:

 

posted @ 2017-05-13 17:25  若曦丶  阅读(167)  评论(0编辑  收藏  举报