c++入门,这道题需要用到ASCLL码对应字母来求,希望给个思路,谢了,主要是2)

img


img

供参考:

#include <stdio.h>
#include <stdlib.h>
int  main()
{
    int i, j, k, n = 4;
    char ch = 'A';
    //printf("输入n:");
    //scanf("%d", &n);
    for (k = 1 - n; k <= n - 1; k++)
    {
        i = n - abs(k);
        for (j = 1; j <= n - i; j++)
            printf("  ");
        for (j = 1; j <= i; j++)
            printf("%4c", ch);
        printf("\n");
        if (k < 0) ch++;
        else       ch--;
    }
    return 0;
}

img

先打印上半个三角形 for(char i = 'A'; i <= 'D'; i++){...}
//第一行距离第一个字母的空格数是行数减1,行数 = ‘D’ - ‘A’,然后空格依次减1
再打印下半个三角形 for(char i = input_data; i >= 'A'; i--){...}
//第二行距离第一个字母的空格为1,根据行数依次加1

for(char i = 'A'; i <= 'D'; i++){
  for(int space = 0; space < row - 1; space++){
      cout << ' ';
    }
  for(char j = 'A', int count = 0; count < row; j++, count++){
    cout << j << ' ';
   }
  cout << '\n';
}
//大概吧