字母金字塔,不知道哪里有问题就是输出有问题

    A
  ABA

ABCBA
ABCDCBA

#include 
int main()
{
    char ch,a='A';
    int i,j,r;
    scanf("%c",&ch);
    if(ch>='a'&&ch<='z')
    ch=ch-32;
    r=ch-'A'+1;
    for(i=1;i<=r;i++)
    {
        for(j=1;j<=i;j++)
        {
        
            printf("%c",a);
            ++a;
        }
        for(j=1;j<=i-1;j++)
        {
            --a;
            printf("%c",a);
        }
        printf("\n");
    }
    return 0;        
}

img


最后输出个这个东西来了,哪里有问题,怎么修改

img

参考如下:

#include <stdio.h>
int main()
{
    char ch,a='A',b;
    int i,j,r,n;
    scanf("%c",&ch);
    if(ch>='a'&&ch<='z')
    ch=ch-32;
    r=ch-'A'+1;
    n = r;
    for(i=1;i<=r;i++)
    {
        for(j=n-1;j>0;j--)
        {
            printf(" "); // 输出每一行最前面的空格    
        }
        n--;
        b = a;
        for(j=1;j<=i;j++)
        {
            printf("%c",b++);
        }
        b--;
        for(j=1;j<=i-1;j++)
        {
            printf("%c",--b);
        }
        printf("\n");
    }
    return 0;        
}

如有帮助,欢迎点赞+采纳哈!