Mario
要解决的问题
在任天堂 Super Mario Brothers 第 1-1 关的开头附近,Mario 必须跳过相邻的砖块金字塔,如下图所示。

在名为 mario-more 的文件夹中的 mario.c 文件中,用 C 语言实现一个程序来重建那些金字塔,使用井号(#)表示砖块,如下图所示:
# #
## ##
### ###
#### ####
并且让用户来决定金字塔应该有多高,先提示他们输入一个介于 1 到 8(含)之间的正整数 int。
示例
以下是当用户被提示时输入 8 后程序可能的运行效果:
$ ./mario
Height: 8
# #
## ##
### ###
#### ####
##### #####
###### ######
####### #######
######## ########
以下是当用户被提示时输入 4 后程序可能的运行效果:
$ ./mario
Height: 4
# #
## ##
### ###
#### ####
以下是当用户被提示时输入 2 后程序可能的运行效果:
$ ./mario
Height: 2
# #
## ##
以下是当用户被提示时输入 1 后程序可能的运行效果:
$ ./mario
Height: 1
# #
如果用户在被提示时没有输入 1 到 8 之间(含)的正整数,程序应重新提示用户直到他们配合:
$ ./mario
Height: -1
Height: 0
Height: 42
Height: 50
Height: 4
# #
## ##
### ###
#### ####
注意,相邻金字塔之间”间隙”的宽度等于两个井号的宽度,与金字塔高度无关。
讲解视频
如何测试你的代码
你的代码在以下输入情况下是否按预期工作:
-
-1(或其他负数)? -
0? -
1到8? -
9或其他正数? - 字母或单词?
- 只按 Enter 键,不输入任何内容?
你也可以执行下面的命令,使用 check50 来评估代码的正确性。但请务必自己编译并测试它!
check50 cs50/problems/2026/x/mario/more
执行下面的命令,使用 style50.
style50 mario.c
如何提交
在终端中执行以下命令提交你的作业,并按提示完成操作。
submit50 cs50/problems/2026/x/mario/more