所以,目标是把“n”字母放在“n”行中,n是迭代的大小但意外的结果出现了。

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

main() {
    int tam;
    char letra = 'A';

    printf("Tree size?\n");
    scanf("%d", &tam);

    for (int i = 0; i < tam +1; i++){

        for (int j = 0; j < i+1; j++)
        {
            if (j < i)
                printf("%c", letra);

        }
        letra = (char)((int)letra + 1);
        printf("\n");
    }
}

预期产出:
 A
 BB
 CCC
 .
 .
 .

我得到的是:
B
CC
DDD
.
.
.

我试图放置另一个printf,如果在输出外面是“a”如预期,但是在for里面它纠正了字母问题,并在树大小上再添加一行。
示例-(树大小:3 A BB CCC DDDD)
怎么了?

最佳答案

你不是在打印第一个字母

if (j < i)

你说:
0 < 0,而且您的树大小将不正确,因为第一个循环达到i + 1
以下是正确的代码:
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

main() {
    int tam;
    char letra = 'A';

    printf("Tree size?\n");
    scanf("%d", &tam);

    for (int i = 0; i < tam; i++, ++letra){
        for (int j = 0; j < i+1; j++)
        {
            printf("%c\n", letra);
        }
    }
}

08-16 20:48