#include<stdio.h>
int main()
{
int a[10]={0,0,0,0,0,0,0,0,0,0};//便于计算,将数组初始化。
a[0]=1;
printf("%3d\n",a[0]);
for(int i=1;i<10;i++){//循环9次,总共打印10行杨辉三角
for(int j=i;j>0;j--)//循环控制杨辉三角计算过程,从数组右边往左边更新数组,避免计算逻辑错误
a[j]=a[j]+a[j-1];//计算过程,第n行第n个数为第n-1刚第n个数和第n-1刚第n-1个数之和
for(int k=0;k<10;k++)//更新一次数组值,打印一次
if(a[k]!=0) //不打印0值
printf("%3d ",a[k]);
printf("\n");
}
return 0;
}
据同学反馈,还有一种阶乘方法,后续更新。
二维数组实现可以保存完整杨辉三角,逻辑更简单。