#include<stdio.h>
#define N 1000
int main( )
{
int a[N][N]; //定义足够大的数组
int i,j;
int n;
scanf("%d",&n);
a[1][1]=1; //给杨辉三角赋予初值
a[2][1]=1;
a[2][2]=1;
for(i=3;i<=99;i++) //先算出杨辉三角值
{
for(j=1;j<=i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
for(i=1;i<=n;i++)
{
int k=0;
for(j=i;j<=n-1;j++)
printf(" "); //因为要为等腰三角形形状,故打印前面的空格
for(j=1;j<=2*i-1;j++)
{
if(j%2)//奇数位打印
printf("%d",a[i][++k]);//打印具体值
else
printf(" ");//打印数与数之间的间隙
}
printf("\n");
}
return 0;
}
以上是代码,如有任何意见或者需要改进的地方,还请指导。