我目前正在CS50的第1周处理Mario问题(较不舒服)。到目前为止,我可以打印金字塔的哈希值,但是在用空格正确调整它方面遇到了麻烦。有人能够指出我要去哪里哪里吗?提前非常感谢您。
#include <cs50.h>
#include <stdio.h>
int main(void)
{
int hashes;
int space;
int height;
do
{
height = get_int("height: ");
}
while (height < 0 || height > 5);
{
for (int i = 0; i <= height; i++)
{
for (space = (height - 1); space <= 0; space++)
{
printf(" ");
}
for (hashes = 1; hashes <= i; hashes++)
{
printf("#");
}
printf("\n");
}
}
}
答案 0 :(得分:0)
正如Antti所说,在您的“空间”循环中,在i的第一次迭代(因此i = 0)上的height - 1
永远不会<或=到0(除非将高度设置为1)。
如果将高度设置为5,应该在第一行的#之前打印多少空格?是4吗?
因此,如果在第一行上int Space = 0,height = 5,那么哪个循环代码将获得4的结果?但是考虑在下一次Space迭代中,如果int Space = 1,Height = 5,那么哪个循环代码可以达到3的结果?
for (space = 0; "this needs to to = 4" ; space++)
{
printf(" ");
}
for (space = 1; "this needs to to = 3" ; space++)
{
printf(" ");
}
“ spaces”的值在每次迭代中都会更改,您可以使用吗?