Zufallszahlen fuer Lottogenerator

Hallo,

ich muss fuer mein Studium ein paar Routinen zum Thema Lotto schreiben. Jetzt moechte ich mir erstmal einen kleien Lottozahlen-Generator mit MS Visual C++ programmieren, aber das klappt nicht so richtig.

und zwar moechte ich mit der funktion rand() die Zahlen 6 aus 49 erzeugen.
Dazu versuche ich mit RAND_MAX=49 das maximum des zufallsgenerator wie in der Online-Hilfe erklaert zu programmieren. Aber der Generator erzeugt mir trotzdem Zahl weiter ueber 2000 anstatt nur von 1-49 !!
Was mache ich da flasch !! Hier mein Programm

#undef RAND_MAX
#define RAND_MAX 49

void main(void)
{
int Zahl;

//Zufalls-Generator intialisieren
srand((unsigned)time(Null))

Zahl=rand();
}

diese Routinen erzeugt mir aber nicht nur Zahlen zwischen 1 und 49 ???

Kann mir das jemand eine Tipp oder ein kleines Programm mailen ?

Danke im Voraus fuer Ihre Bemuehungen
Ralf

Hallo Ralf,

mit dem Modulo Operator funktioniert die Sache:

Zahl = rand() % 49;

Gruß Patrick

Hallo Patrick,

Dein Generator erzeugt auch die Null!!
Besser ist:

Zahl = rand() % 48 + 1;

Gruss, Niels

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

auch nur beinahe…

Dein Generator erzeugt auch die Null!!
Besser ist:

Zahl = rand() % 48 + 1;

Gruss, Niels

Noch besser ist: Zahl = rand() % 49 + 1;

Da der Mod-Operator den Divisionsrest liefert (rand() % 49 liefert also eine Zahl von einschließlich 0 bis einschließlich 48)
:wink: