我应该如何让我的for循环工作?for循环是全新的

How am I supposed to make my For-loop work? Brand new to For-loops

本文关键字:for 循环 工作 我的 我应该      更新时间:2023-10-16
for (int h = 5; h >= 1; --h)
{
    for (int ah = 1; ah <= 5; ++ah)
    {
        cout << "*";
    }
    cout << "n";
}
_getch();

我需要这个For循环显示五颗星,然后在下一行显示四颗星,然后是三颗星,然后是两颗星,然后是一颗星。但无论如何,我也想不明白。我是For loops的新手。我需要改变什么?这是所有允许的代码。

当一个问题太复杂时,把它分解成几个部分。

你要做的一件事是"写出一些星星的数量"。例如,你可以写一个函数

void write_stars_and_newline(int n)
{
    for (int ah = 1; ah <= n; ++ah)
    {
        cout << "*";
    }
    cout << "n";
}

然后画出三角形

for (int h = 5; h >= 1; --h)
{
    write_stars_and_newline(h);
}

现在,因为你需要保持嵌套的for循环结构,你可以内联这个解决方案:你可以用它的内容替换对write_stars_and_newline的调用,确保用你传递给它的值(h)替换参数n:

for (int h = 5; h >= 1; --h)
{
    for (int ah = 1; ah <= h; ++ah)
    {
        cout << "*";
    }
    cout << "n";
}
一般来说,如果你已经写了第一个解决方案,你通常不应该做最后一步,除非你相信它使代码更容易阅读和理解。但是我们必须为完成你的任务做出让步。

看看这两个循环:

for (int h = 5; h >= 1; --h)
    for (int ah = 1; ah <= 5; ++ah) 

在这两个例子中,你迭代了5次,所以你得到了5 * 5 = 25颗星。你需要5 + 4 + 3 + 2 + 1 = 15颗星。要做到这一点,你只需要改变其中一个循环的一部分。会是什么呢?

应该可以。它将使内部for循环的次数根据外部for循环的值而改变。

for (int h = 5; h >= 1; --h)
{
    for (int ah = 1; ah <= h; ++ah)
    {
        cout << "*";
    }
    cout << "n";
}
_getch();