You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CS50课程C语言指定高度金字塔打印代码问题求提示

CS50 C语言金字塔打印问题提示

需求:输入1-8范围内的高度,打印如下样式的左对齐金字塔:

#
   ##
  ###
 ####
#####

当前代码:

int main(void)
{
    // Recebe uma altura do usuário entre 1 e 8;
    int h;
    do
    {
        h = get_int("Altura: ");
    }
    while (h < 1 || h > 8);

    // acrescenta uma quebra de linha até que atinja a altura
    for (int i = 0; i < h; i++)
    {
         // acrescenta uma # de acordo com a quantidade de quebra de linha
         for (int b = 0; b <= i; b++)
         {
             for (int j = h - 1; j > i; j--)
             {
                 printf(" ");
             }

             printf("#");
         }

         printf("\n");
    }
}    

当前错误输出:

****#
  ***##
  **###
  *####
  #####

提示:

  • 错误输出的核心问题是:每个#前面都重复打印了空格,这是因为你把空格打印逻辑嵌套在了单个#的循环里。
  • 拆解每一行的结构:对于第i行(从0开始计数),整行应该先打印h - 1 - i个空格,再打印i + 1个#,最后换行。
  • 调整循环顺序:在每一行的外层循环中,先单独完成所有空格的打印,再单独完成所有#的打印,不要把两种字符的打印混在同一个内层循环里。

内容的提问来源于stack exchange,提问作者GirlSM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 08:42:40