2017-03-16 50 views
-2

這是我的中期。與大家交談,沒有人知道。老師沒有給出答案,我們在課堂上從來沒有做過這樣的事情。我很茫然。請救我互聯網。這是編程101給一些上下文。創建一個複雜的嵌套循環

這裏所說:

五種不同的線數來創建嵌套循環。在第一行打印0-9,第二個10-12,第三個5-7,第四個3-7,第五個13-17。

+0

這是一個單一的嵌套循環? 'for(...){for(...){}}'?或者在廣度和/或深度上嵌套多個循環? – ssell

+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

這是技巧,你需要修改它來解決你的課堂問題。

+0

感謝Steve的迴應,但是,我已經理解了。如果這只是我不會有問題的事情。我大部分都理解嵌套循環。這是'修改它來解決你的課堂問題',我似乎無法弄清楚。 –

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

最簡單的答案通常是最好的,對不對?