Ich habe gelernt, wie man die Funktion rand () benutzt, und ich habe ein kleines Ratespiel in C ++ geschrieben, aber das Problem ist, egal wie oft ich die Programme kompiliere, die generierte Nummer ist die gleiche - & gt; 41
%Vor%Ich habe auch versucht, den Maximalwert von rand () zu ändern, und es hat sich geändert, solange ich es & lt; 41.
Irgendwelche Ideen? Ich habe keinen Hinweis , warum dies geschieht. Ich verwende CodeBlocks IDE und ich habe versucht, neu zu erstellen (STRG + F11)
Sie sollten zuerst versuchen, einen Seed für die Funktion rand () wie folgt zu initialisieren:
%Vor% am Anfang von main
. Stellen Sie sicher, dass die time.h in der Kopfzeile enthalten ist
oder
%Vor%Es wird wahrscheinlich jedes Mal der selbe Startwert für den Zufallszahlengenerator verwendet. Wenn Sie den Startwert des Zufallszahlengenerators jedes Mal auf einen anderen Wert setzen, werden Sie anders aussehen Zahlen. nach den Dokumenten:
Um Zufallszahlen zu erzeugen, wird srand normalerweise initialisiert zu irgendeinem unterscheidbaren Wert, wie die mit der Ausführungszeit verbundenen. Zum Beispiel der Wert, der von der Funktionszeit zurückgegeben wird (deklariert in Header) ist jede Sekunde anders, was markant genug ist für die meisten zufälligen Bedürfnisse.
Der Zufallszahlengenerator wird bei jedem Programmlauf mit demselben Standardstatus versehen.
Um bei jedem Lauf unterschiedliche Ergebnisse zu erhalten, müssen Sie den Zufallszahlengenerator in Ihrem Programm einsetzen, indem Sie srand()
aufrufen und einen neuen Seed übergeben. Es ist üblich, den Rückgabewert von time(NULL)
als Startwert zu verwenden, da dies garantiert, dass Sie einen anderen Startwert für verschiedene Läufe Ihres Programms erhalten.
Fügen Sie am Anfang von main
Folgendes hinzu: