gpt4 book ai didi

c - 如何修复我的 cs50 pset 1 mario 不太舒服的代码

转载 作者:太空宇宙 更新时间:2023-11-04 07:49:55 29 4
gpt4 key购买 nike

我对 cs50 pset 1(马里奥不太舒服)的解决方案没有打印出金字塔。相反,它只是打印出一个#。我已经尝试了多次,但我在尝试编译时得到的只是错误,说它不能识别 int i 或者分号应该移到新行。更改为此代码后,错误终于停止了,它可以正确输入,但不会打印金字塔。

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

int main(void)
{
int height;
int spaces;
int hashes;
int row;

do
{
printf("Height: ");
height = get_int();
}

while (height < 0 || height > 23);

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

for (spaces = (height - 1) - row; spaces >= 0; spaces--)
;
{
printf(" ");
}

for (hashes = 2; row < hashes; hashes++)
;
{
printf("#");
}
printf("\n");
}

这是终端的输出

$制作马里奥clang -fsanitize=signed-integer-overflow -fsanitize=undefined -ggdb3 -O0 -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow mario.c -lcrypt -lcs50 -lm -o 马里奥$./马里奥高度:15 #

最佳答案

用户 Blaze alerady 对正在发生的事情给出了完美的解释。为了清楚起见,我想添加以下内容:

for语句的语法大致是:

for ( ... ) <statement>

在哪里<statement>可以是任何语句,包括空语句

分号是语句终止符。它表示语句的结束。如果您只写一个分号,它会终止一个空语句。因此,您的循环体由空语句组成。

(作为语句终止符的分号的另一个示例:2+2; 将表达式转换为语句。)

关于c - 如何修复我的 cs50 pset 1 mario 不太舒服的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54481561/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com