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
相关产品推荐
相关产品推荐

