给定一个字母,请输出其对应的字母三角形(最后一行行首,每行末无空格)。 比如输入E,输出
A ABA ABCBA ABCDCBA ABCDEDCBA A A ABA ABA ABCBA ABCBA ABCDCBA ABCDCBA ABCDEDCBA ABCDEDCBA
输入
存在多个样例,每行输入一个大写字母。
输出
依次输出每个字符对应的字符三角形。
样例输入
A B C
样例输出
A A A A ABA A A ABA ABA A ABA ABCBA A A ABA ABA ABCBA ABCBA
思路:打印字母三角形,原型为字母金字塔 https://mp.csdn.net/mp_blog/creation/editor?spm=1001.2100.3001.4503
#include<stdio.h>
int main()
{
char c[2];
while(scanf("%s",c)!=EOF)
{
int length = c[0] - 'A';
// printf("%d\n",length);
int ch;
for(int i = 0; i<=length; i++)//上半部分
{
ch = 65;
for(int j = 2*length;j>=i;j--)//空格
printf(" ");
for(int j = 0;j<=i;j++)//升序
printf("%c",ch++);
ch--;
for(int j = 0;j<i;j++)//降序
printf("%c",--ch);
printf("\n");
}
for(int i = 0; i<=length; i++)//下半部分层数
{
ch = 65;
for(int j = length;j>i;j--)
printf(" ");
for(int j = 0;j<=i;j++)
printf("%c",ch++);
ch--;
for(int j = 0;j<i;j++)
printf("%c",--ch);
for(int j = 0;j<2*length+1-2*i;j++)//中间空格找规律
printf(" ");
ch = 65;
for(int j = 0;j<=i;j++)
printf("%c",ch++);
ch--;
for(int j = 0;j<i;j++)
printf("%c",--ch);
printf("\n");
}
}
}