创建一个复杂的嵌套循环

问题描述:

这是我的中期。与大家交谈,没有人知道。老师没有给出答案,我们在课堂上从来没有做过这样的事情。我很茫然。请救我互联网。这是编程101给一些上下文。创建一个复杂的嵌套循环

这里所说:

五种不同的线数来创建嵌套循环。在第一行打印0-9,第二个10-12,第三个5-7,第四个3-7,第五个13-17。

+0

这是一个单一的嵌套循环? 'for(...){for(...){}}'?或者在广度和/或深度上嵌套多个循环? – ssell

+0

未提供该信息。如果它打印出她想要的和嵌套的循环,她不在乎我相信。 –

您可以嵌套循环,并在每个嵌套循环之前和之后执行操作。

例如,下面的完整的程序:

#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; 
} 

最简单的答案通常是最好的,对不对?