记录打印杨辉三角-C语言

#include<stdio.h>
int main(){

 

  int i,j,k;
  //输出十行,ns表示上一行的数据,nx表示当前行的数据,ts表示计算当前行时的临时数据
  int ns[11]={0},nx[11]={0},ts[11]={0};
  //控制行数:0~9共十行
  for (i = 0; i < 10; i++){
    //第一行
    if (i == 0) printf("%d ", 1);
    //第二行
    if (i == 1){
      printf("%d %d", 1,1);
      ns[0]=1;ns[1]=1;
    }
    //i=2时,即从第三行开始
    if(i>1){
      for (j = 0; j <= i; j++){
      //第一个后最后一个数总是为1
      if(!j || j == i)
        nx[j] = 1;
      else
        nx[j] = ns[j-1]+ns[j];//第j个数等于它肩上的两个数之和
      printf("%d ", nx[j]);
      ts[j] = nx[j];//临时数组记录当前行的值,等下把它们放到ns中去,给下一次循环使用
      }
      //将ts的值放到ns中
      for(k = 0;k<=i;k++){
        if(!k || k==i) ns[k]=1;
        else ns[k] = ts[k];
      }
    }
    //没输出一行后换行
    printf("\n");
  }
  return 0;
}
posted @ 2022-03-12 09:54  帅哥才  阅读(28)  评论(0编辑  收藏  举报