原题如下:
原图

#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;
}
最后修改:2019 年 02 月 26 日
如果觉得我的文章对你有用,请随意赞赏