怎样编出这个图形,我只能做出实心的。😢

要求如图,但是我只能做成实心的,请问要像图片那种空心的应该怎么弄啊

img

img

img

img


#include
#include
using namespace std;
int main()
{
char ch;
int i, j;
//上半部分
i = 1;
while (i <= 7) //图形上半部分有 7 行
{
j = 0;
cout << setw(30 - i);
while (j <= (2 * i - 1) / 2) //行的前部分字母
{
ch = 'A' + j;
cout << (char)ch;
j++;
}
while (j < 2 * i - 1) //行的后部分字母
{
ch = ch - 1;
cout << (char)ch;
j++;
}
cout << endl;
i++;
}
//下半部分
i = 7 - 1; //图形上半部分有 7-1 行
while (i > 0)
{
j = 0;
cout << setw(30 - i);
while (j <= (2 * i - 1) / 2)
{
ch = 'A' + j;
cout << (char)ch;
j++;
}
while (j < 2 * i - 1)
{
ch = ch - 1;
cout << (char)ch;
j++;
}
cout << endl;
i--;
}
}

可以贴代码吗?


 
 
int main()
{
    int n;
    scanf("%d",&n);
    
    for(int i=1;i<=n;++i)
    {
        for(int j=i;j<=n-1;++j)
            printf(" ");
        char ch=0;
        for(int j=0;j<i;++j)
        {
            ch = 'A'+j;
            printf("%c",ch);
        }
        for(int j=1;j<i;++j)
        {
            ch = ch-1;
            printf("%c",ch);
        }
        printf("\n");
        
    }
    
    for(int i=n-1;i>0;--i)
    {
        for(int j=i;j<=n-1;++j)
            printf(" ");
        char ch=0;
        for(int j=0;j<i;++j)
        {
            ch = 'A'+j;
            printf("%c",ch);
        }
        for(int j=1;j<i;++j)
        {
            ch = ch-1;
            printf("%c",ch);
        }
        printf("\n");
        
    }
    
    return 0;
}