CS50马里奥金字塔 - 代码有效,但我在运行check50时仍然遇到错误

时间:2016-10-05 00:39:43

标签: c cs50

当我运行此代码时,我确实得到了右对齐金字塔的所需结果,该结果因用户输入高度而异。但是,当我运行CS50检查功能时,它会告诉我以下内容:

:(正确处理1的高度    \预期产出,但不是" ## \ n"

:(正确处理2的高度    \预期产出,但不是" ## \ n ### \ n"

:(正确处理23的高度    \预期产出,但不是" ## \ n ..."

:(拒绝高度为24,然后接受2的高度    \预期产出,但不是" ## \ n ### \ n"

#include <cs50.h>
#include <stdio.h>

int main(void)
{
    int height;
    int row;
    int space;
    int hash;
     // declare variables 
    do 
    {
        printf("Height:\n");
        height = GetInt();
    }
    while (height < 0 || height > 23);

    // build pyaramid if acceptable height entered

    for (row = 0; row < height; row++)
    { 

        for (space = 0; space < (height - row); space++)
        {
            printf(" ");
        }
        for (hash = 0; hash < 2 + row; hash++)
        {    
            printf("#");
        }    
        printf("\n");
    } 

}

1 个答案:

答案 0 :(得分:1)

你确定你得到了合适的空间输出吗?我记得Mario.c应该输出一个右对齐的金字塔,但左下方与终端侧对齐。由于它是空的空间,可能很难分辨。我建议通过在其位置打印一个角色来测试它

例如

for (space = 0; space < (height - row); space++) { printf("b"); }

这应该让你知道你需要改变什么。