Mehrere Zufallszahlen
-
Ich würde gerne eine Zufallszahl erzeugen. (klappt auch)
Diese Zahl speicher ich in der Variable "int Zufall",
und im nächsten Schritt möchte ich diese Variable "int Zufall" mit
einer neu generierten Zufallszahl überschreiben.Aber irgendwie nimmt er immer 2 gleiche Zahlen.
z.B 2,2 , 4,4 oder 6,6 nicht soetwas z.B. 3,5 oder 1,8.Wie kann ich das Problem lösen?
-
srand()
nur ein einziges Mal am Anfang dermain()
rufen.~Edit: Typo.~
-
Dann machst du etwas falsch. Schau dir den Artikel von Marc++us an.
-
So sieht mein Programm nun aus.
int main(){ int zufallszahl; srand(time(NULL)); zufallszahl = rand() % 10 + 1; cout << zufallszahl << "\n"; zufallszahl = rand() % 10 + 1; cout << zufallszahl << "\n"; getch(); return 0; }
-
und nun? funktioniert es? Macht es was du willst? Oder ist das ein "alles läuft und hier ist die funktionierende Lösung"?
-
Nein ist funktioniert nicht..
-
Doch, es funktioniert.
Wenn was nicht geht schreib halt dazu was, es interessiert echt keinen hier zu raten.
-
Blitz schrieb:
So sieht mein Programm nun aus.
int main(){ int zufallszahl; srand(time(NULL)); zufallszahl = rand() % 10 + 1; cout << zufallszahl << "\n"; zufallszahl = rand() % 10 + 1; cout << zufallszahl << "\n"; getch(); return 0; }
diese Programm gibt zwei zufällige Zahlen zwischen 1 bis 10 aus. Die zahlen können gleich sein, müssen aber nicht.
Gib doch einfach ein paar Zahlen mehr aus:
#include <cstdlib> // rand #include <ctime> #include <iostream> int main() { using namespace std; srand(time(NULL)); // nur einmal(!) aufrufen for( int i=0; i<6; ++i ) // 6-mal { int zufallszahl = rand() % 10 + 1; cout << zufallszahl << "\n"; } cin.get(); return 0; }
Gruß
Werner
-
Vielleicht ist's Zufall?
http://dilbert.com/strips/comic/2001-10-25
-
Danke dir Werner Salomon, jedzt funktioniert es wie ich es wollte
-
Sry für doppelpost.
Aber noch eine Frage wie kann ich es einstellen das es in einem Bereich zwischen 40 und 50 sein soll?
-
wie kann ich es einstellen das es in einem Bereich zwischen 40 und 50 sein soll?
In dem du den Modulo und den Summand entsprechend abänderst:
zufallszahl = rand() % 9 + 41; // für (40, 50) zufallszahl = rand() % 10 + 40;// für [40, 50) zufallszahl = rand() % 11 + 40;// für [40, 50]
(Edit: Falls dir die Notation fremd ist, siehe hier)
-
Danke!