Description | ||
题目描述打印一个字母圣诞树。 输入第一行是一个整数K,表示样例的个数。以后每个样例是一个大写英文字母,占一行。 输出输出对应的字母圣诞树,每行末尾没有空格,每个圣诞树的最后一行前无空格。 样例输入5 A B C D E 样例输出A AAA A AAA B BBBBB A AAA B BBBBB C CCCCCCC A AAA B BBBBB C CCCCCCC D DDDDDDDDD A AAA B BBBBB C CCCCCCC D DDDDDDDDD E EEEEEEEEEEE |
我的思路是将整个一行一行分奇偶行来打印,注意:
1.是从0开始数
2.跳过回车符‘\n’
3.输入满K个才跳出
#include<stdio.h>
int main()
{
char sel[]={
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
};
int K;
scanf("%d",&K);
while(1){
char ch;
scanf("%c",&ch);
if(ch=='\n') continue;
int i = ch - 'A' + 1;
int nu=1;
for(int k=0;k<i*2;k++){
if(k%2==0){
for(int t=0;t<i;t++) printf(" ");
printf("%c",sel[k/2]);
printf("\n");
}
else {
for(int t=0;t<i-nu;t++) printf(" ");
for(int tt=0;tt<2*nu+1;tt++){
printf("%c",sel[(k-1)/2]);
}
nu++;
printf("\n");
}
}
K--;
if(!K) break;
}
return 0;
}