CS50 Mario Pyramid - 代码有效,但当我 运行 check50 时我仍然遇到错误
CS50 Mario Pyramid - The code works, but I'm still getting errors when I run check50
当我 运行 这段代码时,我确实得到了右对齐金字塔的期望结果,该金字塔随用户输入的高度而变化。但是,当我 运行 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");
}
}
您确定 space 的输出正确吗?我记得 Mario.c 应该输出一个右对齐的金字塔,但左下角也与终端侧对齐。可能很难分辨,因为它是空的 space。我建议通过在其位置打印一个字符来测试它
例如
for (space = 0; space < (height - row); space++)
{
printf("b");
}
这应该让您了解需要更改的内容。
当我 运行 这段代码时,我确实得到了右对齐金字塔的期望结果,该金字塔随用户输入的高度而变化。但是,当我 运行 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");
}
}
您确定 space 的输出正确吗?我记得 Mario.c 应该输出一个右对齐的金字塔,但左下角也与终端侧对齐。可能很难分辨,因为它是空的 space。我建议通过在其位置打印一个字符来测试它
例如
for (space = 0; space < (height - row); space++)
{
printf("b");
}
这应该让您了解需要更改的内容。