for (int h = 5; h >= 1; --h)
{
for (int ah = 1; ah <= 5; ++ah)
{
cout << "*";
}
cout << "\n";
}
_getch();
我需要这个For循环显示五颗星,然后是下一行四颗星,然后是接下来的三颗星,然后是两颗星,然后是一颗星。但对于我的生活,我无法弄明白。我是For循环的新手。我需要改变什么?这是我允许的所有代码。我只能改变for的旁边的()里面的内容。
答案 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();