是什么让 # 进入不同的行而不是继续行?

What make # go in different line instead of continuing the line?

我不确定为什么 # 在本应在 'u'

之后继续的情况下却走错了行
#include <stdio.h>
#define LEN 5

int inputNumber() {
    int size;
    printf("Input Size: ");
    scanf("%d",&size);
    printf("===\nTriangle Size is %d\n===\n",size);
    return size;
}

void printTriangle(int size, char ch[]) {
    for(int i = 0; i < size; i++)
    {
        for(int j = 0; j <= i; j++)
        {
            if(j<=LEN)
                printf("%c ",ch[j]);
            if(j>LEN)
                printf("# ");
        }
        printf("\n");
    }
}

int main() {
    char arr_char[LEN] = {'a','e','i','o','u'};
    int number;
    number = inputNumber();
    printTriangle(number,arr_char);
    return 0;
}

我以前问过同样的代码,但我想尝试使用 if-else 而不是 ? : 因为我还没有在 class 中学习,所以我想知道是否可以使用像 if-else 这样的基本东西。

您的代码有未定义的行为,因为您试图访问此 if 语句

中声明的数组 arr_char 之外的内存
        if(j<=LEN)
            printf("%c ",ch[j]);

数组索引的有效范围是[0, LEN )

你需要像这样重写 if 语句

        if(j < LEN)
            printf("%c ",ch[j]);

从输出图片可以看出,在数组后面的字节中,它以存储换行符 '\n'.

的方式出现
a e i o u
a e i o u

a e i o u
 #