Zufallsbuchstabe mit rand()?



  • Hallo zusammen! 🙂

    Habe folgende Buchstaben: o, e, u, i, a.

    Aus dieser Buchstabenmenge möchte ich nun einen "Zufallsbuchstaben" bekommen. Wie kann ich das mit Hilfe der Funktionaufrufe rand(), srand() ... anstellen?

    Gruß
    Michael



  • pack die buchstaben in ein char array, hol dir eine zufallszahl über srand/rand über die größe des arrays und lasse dir über den index den jeweiligen buchstaben ausgeben.



  • Hej,
    hier mal bissl Code:

    #include <time.h>
    #include <iostream.h>
    
    // Der Zeichen-Array
    char cUmlaute[5] = {'o','e','u','i','a'};
    // Variable fuer die Zufallszahl
    int iZufall = -1;
    // Zufallszahlen initialisieren
    srand((unsigned)time(NULL));
    
    // Zufallszahl von 0-4 holen
    iZufall = rand()%4;
    
    // Auf das 'zufaellig' ausgewaehlte Array-Element zugreifen
    
    cout << cUmlaute[iZufall];
    

    Hoffe es ist kein Fehler drin,
    ByeBye, Viking69



  • Hallo!

    Na klar, über den Index eines Arrays, logo! 👍
    Besten dank!!!

    Gruß
    Michael



  • @Viking69

    Ein Fehler is drin

    die indiezes 0-4 kriegst du mit rand()%5 denk ich.

    Chiao



  • Nen Verbesserungsvorschlag hätt ich noch zu machen - time.h ist ein C-Header und iostream.h non-standard. Ich würds etwa so machen:

    #include <ctime>
    #include <iostream>
    
    using namespace std;
    
    //...
    
    // Wenn schon explizit casten, dann richtig. Geht aber in diesem Fall auch
    // einfach mit srand(time(0));
    srand(static_cast<unsigned int>(time(static_cast<time_t *>(0))));
    
    cout << "aeiou"[rand() % 5];
    


  • Hallo,

    das ist aber C++. Iostream gehört überhaupt nicht hierher, weder iostream.h noch iostream. Stattdesen nimmt man stdio.h und printf().


Anmelden zum Antworten