Newbie hat Probleme mit Zufallszahlen



  • Guten Abend die Herrschaften 🙂

    Ich habe vor ein paar Tagen angefangen mir C++ beizubringen.
    jetzt habe ich ein Programm zur Bestimmung von Zufallszahlen geschrieben.
    Das Programm an sich läuft auch Fehlerfrei...einziges Problem:
    Er bringt mir jedesmal dieselbe Zufallszahl, auch wenn ich die *.exe
    neugestartet habe.
    kann es mir leider nicht erklären 😞

    hier der Quelltext:

    #include <iostream>
    #include <stdlib.h>
    
    using namespace std;
    
    int main()
    {
    	int Eingabe(0);
    	int Zufall(0);
    	srand(4);
    	Zufall = rand() % 1000 + 1;
    
    	do
    	{
    		cout << "Eine Zahl zwischen 1 und 1000!" << endl;
    		cin >> Eingabe;
    
    		if(Eingabe < Zufall)
    			cout << "zu klein" << endl;
    
    		if(Eingabe > Zufall)
    			cout << "zu groß" << endl;
    	}
    	while(Eingabe != Zufall);
    
    	cout << "Richtig!" << endl;
    }
    

    was ist daran falsch? Vielen Dank schonmal

    gruß tridane



  • An std::srand übergibt man normalerweise die aktuelle Uhrzeit, also std::time(NULL).

    Genauere Informationen dazu gibt es im Magazin, dort gibt es einen Artikel zum Thema Zufallszahlen.



  • rand() benutzt einen pseudo Logarithmus, der auf jedem PC gleich ist! Daher kommt immer die gleiche Zahl!

    Ich schreib dir fix den Sourcecode... gib mri ein paar Minuten!

    -----------------------------------------------------------------------------------

    #include <cstdlib>
    #include <iostream>
    #include <time.h>
    
    using namespace std;
    
    int main()
    {
    srand ( time(NULL) );
    int zufall = rand() % 10 + 1;
    
    cout << "Zufallszahl: " << zufall << endl;
    
    system ("PAUSE");
    return 0;
    }
    

    Jetzt kommen immer andere Zahlen von 1 - 10

    Wenn du dies noch in eine Schleife legst müsste alles so passen wie du das wolltest!

    Gruß aus Leipzig!



  • Hi tridane,

    hier nen sehr schöner Artikel zum Thema "Zufallszahlen":

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-172876.html



  • Crew06ZW schrieb:

    pseudo Logarithmus

    🙂



  • ok vielen Dank funktioniert jetzt alles 🙂



  • Könntest du eventl. den kompletten Sourcecode zur vollständigkeit dieses Themas noch hineinstellen?!

    Wenn später mal jemand etwas such, hat er so ein komplettes Beispiel... wäre sicher sinnvoll!


Anmelden zum Antworten