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

CS50第1周Mario简易版:输入正常获取但后续无执行

输入高度后程序无反应的解决方案

你代码的核心问题是:获取高度后没有调用build函数。main函数在完成输入验证后就直接执行完毕,完全没触发负责打印金字塔的build逻辑,所以自然看不到任何输出。

只需要在main函数的do-while循环结束后,添加一行调用build的代码即可:

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

void build(int n);

int main(void)
{
    int height;

    // Get Height 1-8 or ask again
    do
    {
        height = get_int("Height: ");
    }
    while (height < 1 || height > 8);
    
    // 调用build函数,传递获取到的高度
    build(height);
}

void build(int n)
{
    for (int i = 1; i < (n + 1); i++)
    {
        for (int j = 1; j < (n + 1); j++)
        {
            if (j <= (n - i))
            {
                printf(" ");
            }
            else
            {
                printf("#");
            }
        }
        printf("\n");
    }

}

补充说明:你写的build函数逻辑是正确的,只要传入合法的height值,就能正常输出左对齐的金字塔结构。比如输入3时,会输出:

#
 ##
###

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 22:10:29