Array mit Werte füllen?



  • Hi Leute!

    Ich will ein Array mit 6 Zufallswerten füllen. Die Zufallswerte in einer Funktion berechnet, die Außerhalb von int main() steht. Mein Code sieht so aus:

    int main()
    {
        int i, a, arr1[6];
    
        for(i=0; i<6; i=i+1)
        {
         arr1[i] = D6();
        }
    
    cout << arr1[0] << arr1[1] << arr1[2] << arr1[3] << arr1[4] << arr1[5];
    
    system("pause");
    return 0;
    }
    

    Das Problem ist, dass das so oft wie ich es neustarte immer die GLEICHEN 6 Zahlen bringt. Wie kann ich das umgehen?

    Könnt ihr mir helfen?



  • Du musst rand und srand verwenden für "Pseudo-Randomwerte" siehe hier ein Beispiel: http://www.cplusplus.com/reference/clibrary/cstdlib/rand/


  • Mod

    #include<ctime>
    
    int main()
    {
        srand(time(0)); // Initialisiert den Zufallsgenerator mit der aktuellen Uhrzeit, welche ine mehr oder weniger zufälliger Startwert sein sollte
        int i, a, arr1[6];
    
        for(i=0; i<6; i=i+1)
        {
         arr1[i] = D6();
        }
    
    cout << arr1[0] << arr1[1] << arr1[2] << arr1[3] << arr1[4] << arr1[5];
    
    system("pause");
    return 0;
    }
    

    Siehe auch:
    http://www.c-plusplus.net/forum/172876

    edit: Heh, willst du uns eigentlich verarschen? Das ist alles doch schon in deinem vorherigem Thread zu dem Thema!
    http://www.c-plusplus.net/forum/277617
    Du hast sogar alles von deinem Lehrer vorgegeben bekommen und kannst es immer noch nicht benutzen?



  • Naja, nachdem letzten edit von SeppJ sag ich nur: "Du hast initD6 vergessen..."



  • Ich will nicht verarschen ich hab bloß vergessen dass ich schon einen Thread dazu aufgemacht hatte.

    Ich hab jetzt ein weiteres Problem. Ich hab jetzt in einem Array 6 Zufallszahlen drinstehen. Jetzt möchte ich unterschiedliche Zahlen aus diesem Array auslesen. In der Form: Benutzer wird gefragt welche Zahlen er auslesen möchte. Ein Beispiel: Ich hab im Array diese Zahlen drinstehen: 234156 dann soll der Benutzer die Stelle angeben können welche er ausgelesen haben möchte und in eine "normale" Variable abspeichern. Beispiel Benutzer will die Stellen 1,2,3 ausgelesen haben und in drei unterschiedliche Variablen abspeichern.

    Wie realisier ich das? Ich hab leider wirklich keinen Plan von...



  • Ich soll hier sowas wie Kniffel programmieren. Es werden 5 Würfel geworfen und der Spieler kann entscheiden Augen er im ersten von den drei Würfen sichern möchte. Wenn alle 3 Würfe vorüber sind, dann sollen die gesicherten und die evtl. noch vorhandenen Augen zusammengerechnet werden.

    Ich hab hier jetzt schon mal das an Code:

    int main()
    {
        int i, j, a, augen1[5], augen2[5], sicher1[6];
    
        for(i=0; i<6; i=i+1)
        {
         augen1[i] = D6();
        }
    
        cout << augen1[0] << augen1[1] << augen1[2] << augen1[3] << augen1[4] << endl;
    
        cout << "Wieviel Wuerfe moechten Sie sichern?";
        cin >> a;
    
        for(j=0; j<a; j=j+1)
        {
         cout << "Welchen Wurf moechten Sie sichern?";
         cin >> sicher1[6];     
        }
    
        cout << endl << sicher1[6];
    

    Mit der letzten for-Schleife will ich bezwecken, dass der Spieler die Stellen der Zufallszahlen angeben soll die er quasi "gesichert" haben möchte. Diese Zahlen sollen dann im zweiten Wurf auch gar nicht mehr auftauchen. Das ist mein Problem wo ich nicht mehr weiterkomme!

    Es wäre nett wenn ihr mir an dieser Stelle etwas weiterhelfen könntet!



  • augen1[5]
    
    // [...]
    
    for(i=0; i<6; i=i+1)
    

    Da stimmt zunächst mal was mit der Arraygröße nicht. Bei einer Größe von 5 (index 0-4) sollte die Schleife auch nur 5 mal loopen. Bei dir tut sie dies allerdings 6 mal.

    Mein Tipp zu deinem Problem:

    // ich glaub, bei kniffel gibts nur 5 Wuerfel ?
    bool sicher1[5] = { false, false, false, false, false };
    
    for(int i=0; i<5; ++i)
    {
        if(sicher1[i] == false)
            augen1[i] = D6();
    }
    
    // hier unten den Wert auf true setzen fuer die Sicherungswuerfel
    


  • Außerdem greift er auf das 7te Element mit "sicher1[6]" zu obwohl dieses nur 6 Elemente hat... Es ist einiges verkehrt. Die Grundlagen scheinen unbekannt zu sein.


Anmelden zum Antworten