所以,目标是把" 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,如果在输出之外是&#39; a&#39;正如预期的那样,但是在它内部纠正字母问题并在树大小上再添加一行。 示例 - (树大小:3 A BB CCC DDDD) 怎么了?
答案 0 :(得分:1)
您不是使用
打印第一个字母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);
}
}
}
答案 1 :(得分:0)
if (j < i)
应为if (j < i + 1)
并且第一个for
循环应为for (int i = 0; i < tam; i++)
请参阅此处查看工作示例:https://onlinegdb.com/B15_KfsRG