我怎么能让我的For-loop工作?全新的For-loops

时间:2015-10-06 17:08:32

标签: c++ for-loop visual-studio-2013

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

_getch();

我需要这个For循环显示五颗星,然后是下一行四颗星,然后是接下来的三颗星,然后是两颗星,然后是一颗星。但对于我的生活,我无法弄明白。我是For循环的新手。我需要改变什么?这是我允许的所有代码。我只能改变for的旁边的()里面的内容。

3 个答案:

答案 0 :(得分:2)

如果问题太复杂,请将其分解成碎片。

你要做的一件事是&#34;写出一些明星&#34;。例如你可以写一个函数

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的调用替换为n内容,确保将参数h替换为您传递给它的值(for (int h = 5; h >= 1; --h) { for (int ah = 1; ah <= h; ++ah) { cout << "*"; } cout << "\n"; } ):

inic

一般来说,如果您已经编写了第一个解决方案,除非您认为它使代码更易于阅读和理解,否则您通常不应该执行最后一步。但我们必须考虑到你的任务。

答案 1 :(得分:1)

看看两个循环:

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

在他们两个中,你正在迭代 5 次,这给你5 * 5 = 25颗星。你想要5 + 4 + 3 + 2 + 1 = 15星。为此,您只需要更改其中一个循环的一部分。它会是什么?

答案 2 :(得分:0)

这应该有效。它将使内部for循环的次数基于外部for循环中的值进行更改。

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

_getch();