c语言如何用梯形输出一堆大写字母

怎么用c语言运行下列图形。

  1. img

行数有输入的字母决定,即该图形由输入字母'D'得到

#include <stdio.h>

int main(void)
{
int n,i,b,c,d;
char ch='A';
printf("请输入你要打印的行数:\n");
scanf("%d",&n);

for(i=1;i<=n;i++)
{
    ch='A';
    for(b=0;b<n-i;b++)
    {
        putchar(32);
    }
    for(c=0;c<i;c++)
    {
        printf("%c",ch++);
    }
    ch--;
    for(d=0;d<i-1;d++)
    {
        printf("%c",--ch);
    }
    printf("\n");
}
return 0;

}

建议参考:https://blog.csdn.net/weixin_43919932/article/details/105788424?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163905092616780264066333%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163905092616780264066333&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-1-105788424.pc_v2_rank_blog_default&utm_term=%E9%87%91%E5%AD%97%E5%A1%94&spm=1018.2226.3001.4450

#include <stdio.h>

void print(int n)
{
        int  j = n - 1, k = 1;          // j表示每层的空格数,k表示层数
        for(;k <= n; k++)
        {
                printf("%*s", j--,"");          // 输出空格
                int i = 0;
                while (i < k) {
                        printf("%c", i+'A');    // 输出数字
                        i++;
                }
                i -= 2;
                while (i >= 0) {
                        printf("%c", i+'A');    // 输出数字
                        i--;
                }
                puts("");
        }

}


int main()
{
        int n = 0;
        while(1){
                scanf("%d",&n);
                print(n);
        }
        return 0;
}

img