[英]CS50 Pset 1 Mario More
我正在解决马里奥在 CS50 Pset 1 中更舒服的问题,我确实喜欢其中的大部分内容,这是我的代码:
#include <cs50.h>
#include <stdio.h>
int main(void)
{
int height, i2, i;
do
{
height = get_int("Height: ");
}
while(height < 1 || height > 8);
for(i = 0; i < height; i++)
{
printf("\n");
for(int o = 0; o < height - i - 1; o++)
{
printf(" ");
}
for(int j = 0; j <= i; j++)
{
printf("#");
}
printf(" ");
for(i2 = 0; i2 < height; i2++)
{
//printf("\n");
for(int j2 = 0; j2 <= i2; j2++)
{
printf("#");
}
}
}
printf("\n");
}
它很好地绘制了第一个金字塔并放置了两个空格,但它没有绘制金字塔,而是绘制了类似矩形的东西。 我在互联网上搜索了答案,但他们都只是解决了整个问题,这破坏了学习过程,所以你能给我一些提示吗? 我非常感谢您能提供的任何帮助。
如果我正确阅读了您的问题,您想在终端上生成一个金字塔(或等腰三角形),如下例所示(仅供参考,我只有一个空格)。
Height: 8
# #
## ##
### ###
#### ####
##### #####
###### ######
####### #######
######## ########
如果是这样的话,我相信你有点复杂。 实际上,您只是想以对称的方式重复您创建的图案。 为此,您只需要重复用于生成图案左半部分的相同打印循环。 如果您需要更多提示,请告诉我。
顺便说一句,我相信您可以删除“while”语句。
while(height < 1 || height > 8);
就目前而言,如果输入的值小于 1 或大于 8,则该 while 循环将成为无限循环。
希望有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.