2017-03-16 6 views
-2

Dies war auf meiner Midterm. Mit jedem gesprochen, niemand hat es verstanden. Der Lehrer gibt keine Antworten aus und wir haben nie so etwas in der Klasse gemacht. Ich bin ratlos. Bitte rette mich Internet. Dies ist Programmieren 101, um einen Kontext zu geben.Erstellen einer komplizierten verschachtelten Schleife

geht hier:

erstellen verschachtelten Schleife mit fünf verschiedenen Linien von Zahlen. Auf der ersten Zeile drucken 0-9, die zweite 10-12, die dritte 5-7, die vierte 3-7, die fünfte 13-17.

+0

Ist dies eine einzelne verschachtelte Schleife? 'für (...) {für (...) {}}'? Oder mehrere verschachtelte Schleifen in Breite und/oder Tiefe? – ssell

+0

Diese Information wurde nicht gegeben. Wenn es ausdruckt, was sie will, und eine verschachtelte Schleife beteiligt ist, kümmert es sie nicht, glaube ich. –

Antwort

1

Sie können Schleifen verschachteln und Aktionen vor und nach jeder verschachtelten Schleife ausführen.

Zum Beispiel das folgende komplette Programm:

#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 drucken.

Dies ist die Technik, die Sie ändern müssen, um Ihr Klassenproblem zu lösen.

+0

Danke für die Antwort Steve, aber ja, das verstehe ich schon. Wenn es etwas wäre, hätte ich einfach kein Problem. Ich verstehe meist verschachtelte Schleifen. Es ist die "modifiziere es, um dein Klassenproblem zu lösen", das scheint mir nicht klar zu sein. –

0

Wir sind die folgenden Anforderungen für das Problem gegeben:

In der ersten Zeile drucken 0-9, die zweite 10-12, wobei die dritte 5-7, 3-7 der vierte, der fünfte 13 -17.

und

Wenn es druckt, was sie will und eine verschachtelte Schleife beteiligt ist, hat sie

Mit dieser begrenzten Informationen nicht kümmern, wir etwas tun können:

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

Die einfachste Antwort ist normalerweise die beste, richtig?

Verwandte Themen