繁体   English   中英

CS50 Pset 1 马里奥 更多

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM