PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Offene Fragen zum Betrieb von Samba



02-01-2001, 07:26
Da ihr alle sofort auf meinen letzten Beitrag hilfreich geantwortet habt, ist hier nun ein weiteres Problem, das ich habe:
ich weiß nicht, wie ich bei der Funktion rand() einen Maximalwert angeben kann, ohne in der Headerdatei stdlibs.h herumzueditieren. Eine Code wie

do
{
x=rand();
}
while((x<=1)&#0124;&#0124;(x>=6))

erziehlt zwar das gewünschte Ergebnis (Simulation eines Würfels), braucht aber unter Umständen bis zu einer halben Minute bis zufällig eine Zahl zwischen 1 und 6 herauskommt.

Vielen Dank für eure Hilfe...Ulf

02-01-2001, 23:30
Hi!

x = (int) ( (double)rand()
/ (double)RAND_MAX
* 6.0 ) + 1

Also Zufallszahl erzeugen, durch RAND_MAX teilen (aufpassen: double rechnen) -> liefert Wert zwischen 0.0 und 1.0.; dann mal 6 und plus 1.

cu,
Michael.

03-01-2001, 07:52
Warum kann man RAND_MAX nicht üner #define redifinieren - der Compiler akzeptiert dies zwar, beim ausführen ist davon jedoch nichts mehr zu spüren...

Ulf

Jimmy
04-01-2001, 09:40
Das mit den Headerfiles der C-Lib ist so eine Sache. Die *.h-Files sind nur dazu da um deinem Compiler zu sagen was eigentlich schon in kompilierter Form in den libs drinsteht. d.h. selbst wenn du irgendwelche #define-Werte änderst, so sind die noch lange nicht in der eigentlichen lib geändert. Dazu müsstest du die ganze libC neu kompilieren.

Ich hoffe die Erklärung konnte dir helfen.

Jimmy

04-01-2001, 10:59
Ja danke - ich denke ich kann mich damit abfinden, die "Divisionslösung" zu benutzen.

Ulf