Münzwurf mit rand()



  • Hallo zusammen,

    ich soll für die Fachschule (seit 4 Wochen c++) ein Programm schreiben das per Zufallsgenerator zwischen 2 Zahlen entscheidet (Kopf und Zahl). Leider bringt mich die Hilfe von VC++ nicht wirklich weiter und das Buch das ich habe auch nicht.

    Mein bisheriger Programmcode:
    [cpp]
    #include <iostream.h>
    #include <stdlib.h> //wird für rand() benötigt

    void main ()

    {
    int wurf, kopf, zahl;
    kopf = 0;
    zahl = 0;

    for (int i=0; i<100; i++)
    {

    Hier sollte jetzt der Zufallsgenerator stehen.

    if (wurf = 0)
    {
    kopf = kopf + 1;
    }//if kopf

    if (wurf = 1)
    {
    zahl = zahl + 1;
    }//if zahl
    }//for
    cout << "Kopf: " << kopf << "\n";
    cout << "Zahl: " << zahl << "\n";
    }//main
    [/cpp]





  • Irgendwie verstehe ich das auf der verlinkten Seite net ganz. 😞 😞



  • Warum, wegem Englisch?
    Hier was Deutsches, weiter unten bei Zufallszahlen http://www.willemer.de/informatik/cpp/verarb.htm
    Ansonsten sind Google und Foren-Suche immer hilfreich..



  • So, mein Programm sieht so aus:

    #include <iostream.h>
    #include <stdlib.h> //wird für rand() benötigt
    
    void main ()
    
    {
    
    	int wurf, kopf, zahl;
    	kopf = 0;
    	zahl = 0;
    
    	for (int i=0; i<100; i++)
    	{
    		wurf =rand() % 100 + 1;//Zufallsgenerator der entweder zwischen 0 und 100 ausgiebt.
    
    		if (wurf <= 50)
    		{
    			kopf = kopf + 1;
    		}//if kopf
    
    		if (wurf >= 51)
    		{
    			zahl = zahl + 1;
    		}//if zahl
    	}//for
    	cout << "Kopf: " << kopf << "\n";
    	cout << "Zahl: " << zahl << "\n";
    }//main
    

    Das komisch e ist, ich komme immer wieder auf das selbe ergebnis. 😞

    PS: Hab ich vergessen zu fragen: WIe bekomme ich das im Forum hin das er mir nicht den ganzen Quellecode linksbündig schreibt.

    PS2: Ich moment arben wir noch mit Win32 Konsolenanwendungen.



  • um Quelltexte ordentlich darzustellen und nicht so:

    main(){
    //... blabla
    printf("test");
    }

    solltest du die Tags "["code"]" und "["/code"]" verwenden aber ohne Anführungsstriche, dann schauts so aus:

    main(){
     //... blabla
     printf("test");
    }
    


  • Danke. Das hab ich gesucht.



  • Du musst den Generator noch initialisieren mit

    srand ( time(NULL) );
    

    und zwar nur einmal am Anfang des Programms oder vor der for Schlaufe.



  • Danke für den Tip und gleich ausprobiert. Allerdings bekomme ich folgende Fehlermeldung:

    error C2065: 'time' : nichtdeklarierter Bezeichner

    Wie muss ich den deklarieren?



  • schreib am anfang deines prgorammes einfach

    srand(0);
    


  • BorisDieKlinge schrieb:

    schreib am anfang deines prgorammes einfach

    srand(0);
    

    Das nützt mir nix, da kommt immer das gleiche Ergebnis raus. 😞



  • riedochs schrieb:

    Danke für den Tip und gleich ausprobiert. Allerdings bekomme ich folgende Fehlermeldung:

    error C2065: 'time' : nichtdeklarierter Bezeichner

    Wie muss ich den deklarieren?

    Also wenn er time nicht kennt würde ich in der MSDN als erstes prüfen obs da ein Headerfile gibt was noch includiert werden muss. Wie z.b. <time.h>. *g*



  • McSnoop schrieb:

    riedochs schrieb:

    Danke für den Tip und gleich ausprobiert. Allerdings bekomme ich folgende Fehlermeldung:

    error C2065: 'time' : nichtdeklarierter Bezeichner

    Wie muss ich den deklarieren?

    Also wenn er time nicht kennt würde ich in der MSDN als erstes prüfen obs da ein Headerfile gibt was noch includiert werden muss. Wie z.b. <time.h>. *g*

    Danke, jetzt funzt der Keks 🙂 🙂 🙂 🙂


Anmelden zum Antworten