创建一个复杂的嵌套循环

时间:2017-03-16 02:24:04

标签: c++ loops nested-loops

这是我的期中考试。与大家交谈,没有人知道。老师没有给出答案,我们在课堂上从未做过这样的事情。我不知所措。请救我上网。这是编程101以给出一些上下文。

这里是:

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

2 个答案:

答案 0 :(得分:1)

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

例如,以下完整程序:

#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

这是一种技术,您需要对其进行修改以解决您的课堂问题。

答案 1 :(得分:0)

我们对此问题有以下要求:

  

在第一行打印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;
}

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