//a[21]就是告诉你只能存21个数据,也就是说你最多输出20行,再多就不行了!
#include
void main()
{
int a[21],i,j,n ;
scanf("%d",&n);
printf("\n");
a[0]=1 ;
for(i=0;i<=n;i++) //n用来控制要输出的杨辉三角的行数
{
for(j=1;j<=40-3*i;j++) //第i行前面的空格个数为40 - 3*i,为了显示更加美观而已
printf(" ");
for(j=0;j<=i;j++) //用来输出第i行的i + 1个元素,注意第0行只有一个元素1
printf("%6d",a[j]);
a[i+1]=1 ;
for(j=i;j>=1;j--)
a[j]=a[j-1]+a[j]; //从后向前计算下一行的除了a[0]外的每个元素的数值还放在a[]数组中
printf("\n");
操作:
$ ./a.out (windows下是a.exe linux下是a.exe)
5 (输入5表示输出5级 依次类推)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1