原题如下:
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
while (n--)
{
char c;
int t = 0;
int space = 0;
int k = 1;
scanf(" %c", &c);
//输入数字的处理
if (c >= '1' && c <= '9') //先检测为数字还是为字母
{
{
t = 2 * (c - '1') + 1;
space = t / 2; 空格的个数
}
for (int p = 0; p < c - '0'; ++p) //行数
{
for (int i = 0; i < space - p; ++i)
{
printf(" "); //输出空格
}
for (int j = 1; j < k; j++)
{
printf("%d", j);
}
k++;
for (int j = k - 1; j >= 1; j--) //每行输出的内容
{
printf("%d", j);
}
printf("\n");
}
}
else if (c >= 'A' && c <= 'Z') //字母的处理
{
{
t = 2 * (c - 65) + 1;
space = t / 2;
}
for (int p = 0; p < c - 64; ++p)
{
for (int i = 0; i < space - p; ++i)
{
printf(" ");
}
for (int j = 1; j < k; j++)
{
printf("%c", j+64);
}
k++;
for (int j = k - 1; j >= 1; j--)
{
printf("%c", j+64);
}
printf("\n");
}
}
}
return 0;
}