Lottozahlen als Array



  • #include <iostream>
    #include <stdlib.h>
    #include <ctime>
    
    using namespace std;
    
    int main()
    {
        int lotto[6];
        int i, j;
        bool neueZahl;
    
        srand(time(0));
        for(i=0; i<6; i++) // ziehe nacheinander sechs Zahlen
        {
            do  // wiederhole die Ziehung, bis die neue Zahl
            {   // nicht mit einer der vorigen identisch ist.
                lotto[i] = rand() % 49 + 1;
                neueZahl = true; // positive Grundeinstellung
                for (j=0; j<i; j++)
                {  // durchlaufe alle bisher gezogenen Kugeln
                    [b]if (lotto[j]==lotto[i])[/b]
                    { // Hier wurde ein Doppelter entdeckt
                        neueZahl = false;
                    }
                }
            } while (!neueZahl);
        }
        for (i=0; i<6; i++)
        {
            cout << lotto[i] << " ";
        }
        cout << endl;
    	system("PAUSE");
    }
    

    Was ich an diesem Programm nicht verstehe ist, WIE speichert er die zufälligen Zahlen in die lotto[j] Felder?
    Arbeite dieses Programm mit einem Debugger-Einzelschritt Verfahren durch und versuche das Programm zu verstehen, jedoch sehe ich nur einen Vergleich und keine direkte Zuweisung der lotto[i] Werte, bzw. Elemente auf die lotto[j] Elemente.

    Eine andere Sache wäre die "srand(time(0));" Sache, hab etwas länger gebraucht bis ich verstanden habe, dass immer die gleiche Folge kommt wenn "srand(0)" steht, wobei das mit dem "time"-Attribut auch nur funktioniert, wenn der zugehörige #include vorhanden ist, diese Sache ist wahrscheinlich einfach so, kann man denke ich auch nicht wirklich gut erklären.

    Interessieren würde mich wirklich diese Sache mit der jeweiligen lotto[j] Zuweisung, jemand eine Idee?



  • Falsches Forum: Dein Code ist C++, hier ist aber das C++/CLI Forum - C++/CLI ist eine .NET Sprache.

    BTW: in C++ ist cstdlib der korrekte Header - anstelle von stdlib.h

    Simon



  • Danke Simon, habs übersehen.

    Wird verbesser und, an hoffentlich richtiger Stelle, nochmal gepostet.


Anmelden zum Antworten