#include<stdio.h>
int main()
{int i,j
char n
printf("请输入一个大写字母:")
scanf("%c",&n)
for(i=0i<=n-'A'i++)
{for(j=0j<n-'A'-ij++)
printf(" ")
for(j=0j<=ij++)
printf("%c",j+'A')
for(j=i-1j>=0j--)
printf("%c",j+'A')
printf("\n")
}
return 0
}
字母金字塔有很多种形式,不过输出的原理都是差不多的。
不用二维数组即可实现。如果用二维数组,就是把字母先写到二维数组中,再一次性输出。
以下以一个比较复杂的字母金字塔为例说明:
#include<stdio.h>int main()
{
char a[26][26]
int n
int i,j
char t
scanf("%d",&n)
if(n>26||n<=0) return-1
for(i = 0i<ni++)
{
for(j = 0 j<n-i-1 j++)
a[i][j] = ' '
t='A'+i
for( j<n j++)
a[i][j]=t--
t='B'
for(j<n+ij++)
a[i][j]=t++
a[i][j] = 0
}
for(i = 0i<ni++)
puts(a[i])
return 0
}
输入10的时候,效果是