chaertl Geschrieben 17. Oktober 2002 Geschrieben 17. Oktober 2002 Hallo Zusammen, fange gerade das Programmieren in C an und möchte ein Blackjack Spiel erstellen. Jetzt weiss ich nur nicht, wie ich bei der Funktion rand() festlege das er nur Zahlen aus einem bestimmten Wertebereich nimmt (zw. 2-11). Irgendwie klappt's noch nicht so recht und das Buch das ich habe verrät auch nicht allzuviel. Vielen Dank wenn mir jemand helfen könnte. Zitieren
Klotzkopp Geschrieben 17. Oktober 2002 Geschrieben 17. Oktober 2002 Das hatten wir hier schon mal: http://fachinformatiker-world.de/forums/showthread.php?s=&threadid=12529 Zitieren
chaertl Geschrieben 17. Oktober 2002 Autor Geschrieben 17. Oktober 2002 Wer nur nicht richtig schlau draus. die streiten sich ja mehr als das dabei was rauskommt. Mir ist halt immer noch nicht klar wie ich das intervall festlegen kann, das er nur Zahlen zwischen 2 und 11 nimmt. Also die 1 soll da nicht rein. Vielleicht komm ich ja noch drauf. Zitieren
Klotzkopp Geschrieben 17. Oktober 2002 Geschrieben 17. Oktober 2002 Original geschrieben von chaertl Wer nur nicht richtig schlau draus. die streiten sich ja mehr als das dabei was rauskommt. Ja, der wichtige Inhalt geht tatsächlich ein wenig unter . Mir ist halt immer noch nicht klar wie ich das intervall festlegen kann, das er nur Zahlen zwischen 2 und 11 nimmt. Also die 1 soll da nicht rein. Vielleicht komm ich ja noch drauf. Du nimmst den Wert, den rand liefert, modulo 10 und addierst 2: int zweibiself = rand() % 10 + 2; Zitieren
chaertl Geschrieben 17. Oktober 2002 Autor Geschrieben 17. Oktober 2002 Vielen Dank für die Hilfe. kannst mir vielleicht nur noch das system dahinter etwas erläutern? Frage mich nämlich wie ich z.B. andere Intervalle setzten kann. das plus zwei ist wohl das erste intervall, aber mit der 10 hab ich so meine Probleme. die irritiert mich, denn ich weiß nicht wo da die elf steckt. Zitieren
Goos Geschrieben 17. Oktober 2002 Geschrieben 17. Oktober 2002 Is ansich gar nicht schwer. Wenn du eine beliebige ganze Zahl durch x teilst, in diesem Fall durch 10, dann bleibt als Rest immer eine Zahl von 0 bis x-1, das waeren in dem Fall dann 0 bis 9. Somit hast du mit der 10 die Groesse des Intervalls festgelegt. Das +2 dient dann noch dazu das Intervall zu verschieben. Du willst kein 0 und 1, also verschiebst du um 2 und bekommst dann Zahlen von 0+2 bis 9+2, also 2 bis 11. Goos Zitieren
Klotzkopp Geschrieben 17. Oktober 2002 Geschrieben 17. Oktober 2002 Allgemein lautet die Formel so: int zufallszahl = rand() % (max - min + 1) + min; Im Klartext: Von 2 bis 11 sind 10 mögliche Zahlen. Modulo 10 liefert 10 mögliche Ergebnisse, allerdings von 0 bis 9, also muss man noch zwei draufschlagen. Zitieren
Goos Geschrieben 17. Oktober 2002 Geschrieben 17. Oktober 2002 @Klotzkopp: hehehe...erster :OD Zitieren
chaertl Geschrieben 17. Oktober 2002 Autor Geschrieben 17. Oktober 2002 @ beide. Vielen dank für die Hilfe. Jetzt hab ich's geschnallt. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.