void print1(int i,int n);//打印每行的空格
void print2(int n);//打印字母
int main()
{
int n;
loop:printf(\"输入你要金字塔层数n:\");
scanf(\"%d\输入金字塔的层数*/
if(n>0&&n<27)
{
print2(n);//打印金字塔
}
else
{
printf(\"您的输入有误0goto loop;}
return 0;
}
void print1(int i,int n)/*打印每层前半部和后半部的空格*/
{
while(n-i-1>0)
{
printf(\" \");
i++;
}
}
void print2(int n)
{ int i,j;
char *str;
printf(\"%d层字母金字塔:\\n\
str=(char*)malloc(sizeof(char)*n);/*n层金字塔包含n个字母*/
str[0]='A';/*首字母为A*/
for(i=0;i{str[i+1]=str[i]+1;/*字母依次为ABC...*/
print1(i,n);//打印每层前半部分面的空格
for(j=0;j<2*(i+1)-1;j++)
{
if(j>i)
printf(\"%c\
/*2*i-j=(i-(j-i)),在中间字母右边的字母与距中间字母等距离的左边字母*/
else
printf(\"%c\j]);/*顺序打印字母*/
}
print1(i,n);/*打印每层后半部分的空格*/
printf(\"\\n\");//换行
}
}