【发布时间】:2021-12-07 11:36:41
【问题描述】:
我正在尝试构建以下半树形式
x
xx
xxx
xxxx
xxxxx
....
N xxxxx
但我无法到达中间的“*”。相反,我有第二个循环产生的间隙。
我使用的代码:
#include <stdio.h>
main(){
int N;
int i,j;
printf("Enter the number: ");
scanf("%d",&N);
for (i=1;i<=N;i++){
printf("x");
for(j=1; j<=(N-i); j++){
printf(" ");
}
printf("x");
printf("\n");
}
}
您能告诉我如何填充 *s 吗?
提前谢谢你。
编辑基于 cmets
如果我将printf(" "); 更改为printf("x");,我会得到一棵倒置的半树,如下面的 N=6 所示
xxxxxx
xxxxx
xxxx
xxx
xx
x
【问题讨论】:
-
你的意思是
printf(" ");?为什么不把它改成printf("x");? -
为什么要打印空格?您的模式不需要空格。此外,您每行至少打印 2*
'x'。一个在内部循环之前,一个在内部循环之后。这不适用于第一行。 -
但我无法到达中间的“”。相反,我有第二个循环产生的间隙。*那是因为第二个循环打印空格(间隙)。如果你不打印间隙,你就不会得到间隙。 :)
-
printf("x")真的应该是printf('*')吗? -
嘿,我已经进行了几次测试,并且在您提到的“*”和“x”方面出现了错误。