Schleifen abbrechen



  • Klassischer Einzeiler:

    std::generate_n(std::ostream_iterator<std::uint_fast64_t>{std::cout,"\n"},1000000,[g=std::mt19937_64{}]()mutable{return g();});
    


  • Hallo abahadschi,

    das mit dem Einze(i)ller bekommst Du später. Bis dahin versuche es mi einer for-Schleife:

    for( int i=0; i<1000000; ++i )
        {
            int z = rand();
            cout << z << endl;
        }
    


  • abahadschi schrieb:

    Hallo zusammen!

    Ich habe eine Frage zu den Schleifen.

    Mit Hilfe der while-Schleife und dem Aufruf rand() ist es mir gelungen, Zufallszahlen auszugeben.

    Allerdings hätte ich gerne genau eine Million Zufallszahlen anstatt einer unendlichen Menge an Zufallszahlen. Ich weiß auch, wie die break-Anweisung funktioniert, allerdings ist der Schleifenabbruch in meinem Fall nicht vom Wert der millionsten Zahl abhängig, sondern eben nur von der Tatsache, dass es die millionste Zahl ist.

    Wie breche ich diese Schleife nach 1000000 Zufallszahlen ab, unabhängig davon welchen Wert diese Zahl hat?

    Danke im Voraus!

    Du musst die Schleifendurchläufe zählen und dann: if (loops == 1E6) break; 🙂



  • Kenner der Anfänger schrieb:

    Hallo abahadschi,

    das mit dem Einze(i)ller bekommst Du später. Bis dahin versuche es mi einer for-Schleife:

    for( int i=0; i<1000000; ++i )
        {
            int z = rand();
            cout << z << endl;
        }
    

    @Kenner der Anfänger
    Danke für deine Antwort! Du bist wirklich ein Kenner der Anfänger:-) Hat mir echt weitergeholfen, jetzt klappt es.

    Könnt ihr mir ev. noch sagen, wie ich es schaffe, die Anzahl der geraden und die Anzahl der ungeraden Zufallszahlen zu zählen und nach der for-Schleife auszugeben?


  • Mod

    abahadschi schrieb:

    Könnt ihr mir ev. noch sagen, wie ich es schaffe, die Anzahl der geraden und die Anzahl der ungeraden Zufallszahlen zu zählen und nach der for-Schleife auszugeben?

    Willst du nicht selber versuchen, deine Aufgaben zu lösen? Die sind dazu da, damit du es lernst. Wie würdest du zählen, wie oft die Zahl 57 vorgekommen ist? Wenn du das hast, denk darüber nach, was eine gerade und eine ungerade Zahl ausmacht.



  • SeppJ schrieb:

    abahadschi schrieb:

    Könnt ihr mir ev. noch sagen, wie ich es schaffe, die Anzahl der geraden und die Anzahl der ungeraden Zufallszahlen zu zählen und nach der for-Schleife auszugeben?

    Willst du nicht selber versuchen, deine Aufgaben zu lösen? Die sind dazu da, damit du es lernst. Wie würdest du zählen, wie oft die Zahl 57 vorgekommen ist? Wenn du das hast, denk darüber nach, was eine gerade und eine ungerade Zahl ausmacht.

    Hallo SeppJ!

    Danke für deine Antwort. Ich freu mich über jeden Beitrag zu meiner Frage.

    Natürlich weiss ich, was gerade und was ungerade Zahlen ausmacht. Ich habe es auch schon gschafft, das über den Divisonsrest und einer if-else-if Anweisung richtig zu programmieren:

    if (z % 2 == 0)
    cout << "gerade" << '\n';
    else if (z % 2 != 0)
    cout << "ungerade " << '\n';

    Doch ich möchte erst nachdem ich die Million Zufallszahlen ausgegeben habe, diese nocheinmal auf gerade/ungerade "untersuchen" und dann mit cout ausgeben, wie viele Zahlen gerade und wie viele ungerade waren. Also meine Frage: Wie kann ich die Million Zufallszahlen nach deren Ausgbe noch einmal auf gerade/ungerade überprüfen und das Ergebnis ausgeben?

    Danke im Voraus für eure Hilfe!



  • abahadschi schrieb:

    Doch ich möchte erst nachdem ich die Million Zufallszahlen ausgegeben habe, diese nocheinmal auf gerade/ungerade "untersuchen" und dann mit cout ausgeben, wie viele Zahlen gerade und wie viele ungerade waren. Also meine Frage: Wie kann ich die Million Zufallszahlen nach deren Ausgbe noch einmal auf gerade/ungerade überprüfen und das Ergebnis ausgeben?

    Dazu müsstest Du die Zahlen für die Ausgabe nicht nur generieren, sondern auch speichern.

    Warum tut es nicht, die Zahlen während der Ausgabe zu untersuchen und nach der Ausgabe der Zahlen das Auswertungsergebnis anzuzeigen?



  • [/quote]
    Dazu müsstest Du die Zahlen für die Ausgabe nicht nur generieren, sondern auch speichern.

    Warum tut es nicht, die Zahlen während der Ausgabe zu untersuchen und nach der Ausgabe der Zahlen das Auswertungsergebnis anzuzeigen?[/quote]

    Geht schon, aber wie funktioniert das? (Bin wie gesagt absoluter Anfänger...)



  • abahadschi schrieb:

    Geht schon, aber wie funktioniert das? (Bin wie gesagt absoluter Anfänger...)

    Mit Variablen?



  • Hab es jetzt mit Variblen versucht, die ich immer dann inkrementiere, wenn der Divisionsrest 0 ergibt - und es klappt!

    Danke euch allen für die Tipps!

    Gruß
    abahdschi


Anmelden zum Antworten