C 代码正在打印我想要的内容,只是打印了太多次

问题描述 投票:0回答:1

我对编码和通过哈佛大学的免费 CS50 课程学习非常陌生。问题集 1 很困难,我认为我通过以困难的方式做事而使其更具挑战性,即我试图为我的代码创建函数以适应创建函数的工作方式。任务是制作一个高度在 1 到 8 之间的左对齐金字塔。我创建了函数来从用户处获取高度并打印金字塔。问题在于金字塔是如何打印的。打印正确,但打印次数过多。因此,如果用户在提示输入高度时输入“3”,则应打印以下内容:

  #
 ##
###

相反,它会打印该金字塔三次:

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

根据我的下面的代码解决此问题的解决方案是什么?

主要:

{
    int n = get_height();

    for (int j = 0; j < n; j++)
    {
        for (int i = 0; i < n; i++)
        {
            print_row(n - i - 1, i + 1);
        }
    }
}

功能:

{ int n; do { n = get_int("Height: "); } while (n < 1 || n > 8); return n; }

{ // Print spaces for (int j = 0; j < spaces; j++) { printf(" "); } // Print bricks for (int i = 0; i < bricks; i++) { printf("#"); } printf("\n"); }

c function loops printing create-function
1个回答
0
投票

你的代码不完整,但问题似乎出在这里。

    for (int j = 0; j < n; j++)
    {
        for (int i = 0; i < n; i++)
        {
            print_row(n - i - 1, i + 1);
        }
    }

内循环打印行。外循环重复该过程。赠品是

j
从未被使用过。如果 n 为 3,您将得到 3 行重复 3 次。

© www.soinside.com 2019 - 2024. All rights reserved.