Veröffentlicht 17. Oktober 200222 j 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.
17. Oktober 200222 j Das hatten wir hier schon mal: http://fachinformatiker-world.de/forums/showthread.php?s=&threadid=12529
17. Oktober 200222 j 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.
17. Oktober 200222 j 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;
17. Oktober 200222 j 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.
17. Oktober 200222 j 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
17. Oktober 200222 j 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.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.