Zufallszahlen nicht doppelt ausgeben
-
Hallo zusammen,
ich hab versucht, ein kleines Programm zu schreiben. Im Grunde soll es nicht viel machen, ausser (später) acht Mannschaften auswerfen, sodass der Grundstock eines Turnierbaums ausgegeben wird. Irgendwie häng ich gerade fest. Habe versucht, das Ganze im Kleinen umzusetzen, also mit drei Mannschaften, aber ich bekomme immer nur eine Ausgabe. Mag mir jemand sagen, was ich da falsch mache?

#include <iostream> #include <cstdlib> using namespace std; void Zufallszahlen() { string Team1, Team2, Team3; cout << "Name der 1. Mannschaft: "; cin >> Team1; cout << "Name der 2. Mannschaft: "; cin >> Team2; cout << "Name der 3. Mannschaft: "; cin >> Team3; cout<<"Results: "; bool Man1true=true, Man2true=true, Man3true=true; for (int i=3;i>=1;i--) { srand(time(NULL)); int Nummer = rand() %3 +1; if (Nummer==1 && Man1true == true) { cout << Team1 << endl; Man1true = false; } else if (Nummer==2 && Man2true == true) { cout << Team2 << endl; Man2true = false; } else if (Nummer==3 && Man3true == true) { cout << Team3 << endl; Man3true = false; } } } int main() { system("clear"); cout<<"----------------------------------------\n"; cout<<" Mrandom\n"; cout<<"----------------------------------------\n"; cout<<endl<<endl; Zufallszahlen(); cout<<endl; return 0; }
-
srand(time(NULL));Nur einmal beim Programmstart aufrufen. Nutze bitte das naechste Mal die Suchfunktion, schaue in die FAQ oder in den Artikeln nach (z.B.: http://www.c-plusplus.net/forum/viewtopic-var-t-is-172876.html )
-
7up schrieb:
ich bekomme immer nur eine Ausgabe.
Was meinst du damit? Laut deinem Code solltest du 3 Ausgaben erhalten. Wenn das nicht der Fall ist geh mal mit dem Debugger durch und schau wo er aus der Schleife rausspringt. Oder kriegst du dreimal die gleiche Ausgabe?
srand() sollte außerdem nur einmal aufgerufen werden - du rufst es aber bei jedem Schleifendurchgang auf.
-
uh das ging ja flott, danke!

naja nun bekomme ich auch drei ergebnisse und nicht nur eins und ja, sufu nutzen ist so ne sache, ich ich hatte jetzt schon ne weile gegoogled und rumprobiert und irgendwann kommt man dann doch zu dem punkt, so etwas vielleicht banales zu posten.

-
Die Ausgabe kommt seltener als einmal vor, wenn die gleiche Zahl kommt. Was bei einer immer wieder erneuten Initialisierung des Zufallsgenerators recht wahrscheinlich ist.