一维数组打印杨辉三角

#include<stdio.h>
int main()
{
 int a[100];       
 int i,j,n;
 scanf("%d",&n);     //输入一个n,n表示行数
 printf(“1”);        //因为第一个数为1,所以直接输出1,也可以认为数组a,第一个数a[0]=1
 printf("\n");       //因为是三角形,输出一个换行符
 a[1]=a[2]=1;
 printf("%-4d%-4d",a[1],a[2]); //第二,第三个数也为1,所以a[1]=a[2]=1,输出a[1]a[2]
 printf("\n");
 for(i=3;i<=n;i++)         //这里的i就表示第几行
 {
  a[1]=a[i]=1;   //表示所有的第i行的第i个数都为1,并且把这个a[i]的值赋给a[1],为了接下来用j输出数组
  for(j=i-1;j>1;j–)    //用一个for循环给除了a[i]的剩下的数赋值
  {
   a[j]=a[j]+a[j-1]; //相当于某一行中间的数为上一行的对应位置的数字之和
  }
  for(j=1;j<=i;j++)//用for循环,因为第i行有i个数,所以循坏i次,输出i个数
  {
   printf("%-4d",a[j]);
  }
  printf("\n");
 }
 return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43730184/article/details/85011564