#include<stdio.h>
int main()
{
int**show,layers;char choice[2];short i;short idx;short blank;
do
{
do
{
printf("请输入非负指数:");
scanf("%d",&layers);
}while(layers<0);
show=(int**)malloc(sizeof(int*)*(layers+1));
for(i=0;i<=layers;i++)
{
for(blank=0;blank<=layers-i;blank++) printf("
");//输出空格
show[i]=(int*)malloc(sizeof(int)*(i+1));
if(i==0)
{
show[i][0]=1;printf("%d",show[i][0]);
}
else
{
if(i==1)
{
show[1][0]=1;show[1][1]=1;printf("%d
%d",show[i][0],show[1][1]);
}
else
{
show[i][0]=1;printf("%d
",show[i][0]);
for(idx=1;idx<=i;idx++)
{
if(idx<i)
show[i][idx]=show[i-1][idx-1]+show[i-1][idx];
else
show[i][idx]=1;
printf("%d
",show[i][idx]);
}
}
}
printf("\n");
}
for(i=0;i<=layers;i++)
free(show[i]);
free(show);
printf("要继续打印杨辉三角形吗?(y/n)");
scanf("%s",&choice);
}while(choice[0]=='y'||choice[0]=='Y');
return 0;
}