Zufallsauswahl



  • Hallo,

    ich muss ein Projekt für meine Schule schreiben.
    Habe mir ein Quiz ausgesucht, aber habe noch einige Startschwierigkeiten.
    Will z.B. eine Zufallsauswahl bei den Fragen haben, sodass wenn man die exe startet nicht immer die gleichen fragen nach einer Reihenfolge kommen, sonder Zufällig.

    Danke 🙂 🙂 🙂



  • hi,

    dazu solltest du dir mal srand() und rand() anschauen.

    srand(time(NULL)); // Pseudo Zufallszahlengenerierung initialisieren (nur 1 x sonst bekommste öfters die gleiche Zahl)
    
    int zufallszahl = rand() % 100; // generiert Zufallszahlen von 0 - 99
    


  • Da gibt es verschiedene Möglichkeiten, z.B. soetwas:

    #include <ctime>
    #include <cstdlib>
    
    ...
    
    std::string arr[3] = { "Hans", "Karl", "Otto" };
    srand(time(NULL));
    
    unsigned int randomIndex = rand() % 3; // Zufälliger Index 0-2
    //Ausgabe
    std::cout << arr[randomIndex] << std::endl;
    

    Oder du speicherst einen Index irgendwo in einer Datei o.ä. Und jedesmal beim Starten des Programmes inkrementierst (o.ä.) du den Index. So bekommst du jedesmal die nächsthöhere Frage.

    Jaja... Keine so besonders tollen Vorschläge, aber mir fällt im Moment nichts besseres ein.

    //EDIT: Zu spät...



  • #include <iostream>
    #include <string>
    #include <algorithm>
    #include <ctime>
    #include <cstdlib>
    using namespace std;
    
    void ask(const string& s)
    {
         cout << "Frage: " << s << "?\n";
         // ...
    }
    
    int main()
    {
        srand((unsigned int)time(0));
    
        string s[3] = { "hallo", "welt", "!" };
        random_shuffle(&s[0], &s[3]);
        for_each(&s[0], &s[3], ask);
    
        // ...
    
     return 0;
    }
    

    mfg


Anmelden zum Antworten