创建一个复杂的嵌套循环
问题描述:
这是我的中期。与大家交谈,没有人知道。老师没有给出答案,我们在课堂上从来没有做过这样的事情。我很茫然。请救我互联网。这是编程101给一些上下文。创建一个复杂的嵌套循环
这里所说:
五种不同的线数来创建嵌套循环。在第一行打印0-9,第二个10-12,第三个5-7,第四个3-7,第五个13-17。
答
您可以嵌套循环,并在每个嵌套循环之前和之后执行操作。
例如,下面的完整的程序:
#include <iostream>
int main() {
for (int i = 0; i < 2; i++)
{
std::cout << "OuterBefore";
for (int j = 0; j < 2; j++)
std::cout << "Inner";
std::cout << "OuterAfter";
}
std::cout << std::endl;
return 0;
}
将打印OuterBeforeInnerInnerOuterAfterOuterBeforeInnerInnerOuterAfter
。
这是技巧,你需要修改它来解决你的课堂问题。
+0
感谢Steve的回应,但是,我已经理解了。如果这只是我不会有问题的事情。我大部分都理解嵌套循环。这是'修改它来解决你的课堂问题',我似乎无法弄清楚。 –
答
我们给出了问题的以下要求:
在第一行打印0-9,第二个10-12,第三个5-7,第四3-7,第五13 -17。
和
如果打印出自己想要的东西,并嵌套循环受影响,她不在乎
利用这个有限的信息,我们可以做这样的事情:
#include <iostream>
#include <array>
int main()
{
const auto starts = std::array<unsigned, 5>{ 0, 10, 5, 3, 13 };
const auto ends = std::array<unsigned, 5>{ 9, 12, 7, 7, 17 };
for(auto i = 0u; i < 5u; ++i)
{
for(auto j = starts[i]; j <= ends[i]; ++j)
{
std::cout << j << " ";
}
std::cout << std::endl;
}
return 0;
}
最简单的答案通常是最好的,对不对?
这是一个单一的嵌套循环? 'for(...){for(...){}}'?或者在广度和/或深度上嵌套多个循环? – ssell
未提供该信息。如果它打印出她想要的和嵌套的循环,她不在乎我相信。 –