C中的字符模式

Character patterns in C

我试图通过仅使用 "for" 或 "while" 循环但不使用 "if" 或 "if-else" 语句来获取以下字符模式:(在代码块)

我很难想出一种方法使第一个字符显示为空白 space 或什至将其表示为空字符。下面是我的代码:

#include <stdio.h>
#include <conio.h>

int main()
{
    char ch[6], j='[=10=]';
    int p,q,n,i;
    printf("Enter a character\n");
    for (n = 0; n < 5; n++)
    {
        scanf_s(" %c", &ch[n], 1);
    }
    printf("\n");
    for (i = 4; i >= 0; i--)
    {
        for (p = 4; p >= i; p--)
        {
            printf("%c", ch[p+1]-1);// _-->A blank space       
        }                           // BA                
        printf("\n");               // CBA      
    }                               // DCBA
                                    // EDCBA
    _getch();
    return 0;
}

我不知道哪里出了问题 — 你能帮忙吗?

#include <stdio.h>
#include <conio.h>

#define SIZE 5

int main(void){
    char ch[SIZE+1] = {0};
    int i;

    printf("Enter a character\n");
    for (i = SIZE-1; i >= 0; --i){
        scanf_s(" %c", &ch[i], 1);
    }
    printf(" \n");
    for (i = SIZE-2; i >= 0; --i) {
        printf("%s\n", ch + i);
    }

    _getch();
    return 0;
}

我改了这个

printf("\n");
for (i = 4; i >= 0; i--)
{
    for (p = 4; p >= i; p--)
    {
        printf("%c", ch[p+1]-1);
    }
    printf("\n");
}

为此

printf("\n_\n");
for (i = 1; i < 5; i++) {
    for (p = i; p >= 0; p--) {
        printf("%c", ch[p]);
    }
    printf("\n");
}

得到这个输出(控制台):

Enter a character

ABCDE

_

BA

CBA

DCBA

EDCBA