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

