为什么我的代码打印的是哈希值块而不是金字塔?

问题描述 投票:0回答:1

提前感谢您的帮助。

我刚刚开始在线 CS50,从 Scratch pset0 跳转到 C pset1 时遇到问题。通过补充教学视频,试图确保我理解我在整个过程中所做的事情,我遇到了一个问题,下面的代码应该打印金字塔,但打印了一个哈希块。举例来说,如果用户输入高度 3,而不是 1 哈希值 , 2 哈希 , 3 哈希值 我得到了具有 3 哈希值的所有三行的打印结果。有人可以告诉我我遗漏或可能忽略的内容吗?

请友善,因为我对这里和一般编程还相当陌生。我提出的最后一个问题没有得到很好的答复。非常感谢!

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

int main(void)
{
    int height, row, column;
    do
    {
        height = get_int("Height: ");
    }
    while (height < 1 || height > 8);

    for (row = 0; row < height; row++)
    {
        for (column = 0; column <= row; column++)
        {
            printf("#");
        }
        printf("\n");
    }
}

Screenshot of results when executed

我相信这个问题属于嵌套for循环初始化列= 0。我希望这段代码打印用户给出的高度的金字塔,而不是打印相应高度的块和每行相同数量的哈希值。

c cs50
1个回答
0
投票

@AndreasWenzel 通过评论:

您的屏幕截图的命令提示符似乎有问题。您应该位于 mario-less 目录中,但您似乎位于工作区的根目录中(我不是指绝对根目录)。因此,我的猜测是,您的 CS50 代码空间中有多个版本的 mario.c,其中一个位于 mario-less 目录中,另一个位于工作空间的根目录中,并且您将两者混淆了。您可以在终端中输入命令 pwd(打印工作目录)来查看您当前所在的目录。

答案已接受!谢谢你

© www.soinside.com 2019 - 2024. All rights reserved.