Befehl Random in C

$INN3R

Cadet 2nd Year
Registriert
Okt. 2004
Beiträge
20
Hi hätte gerne eine schnelle Hilfe, was den befehl random betrifft!

Kann mir jemand schnell helfen? Wieß nämlich nicht genau wie der befehl funktioniert!

bla = random(4);

also bla soll eine Zahl von 0 oder 1-4 sein

Danke!

$inn3r
 
Zwei Fallstricke:
Die Funktion random ist nicht aus dem C-Standard. Nur rand ist dort definiert. Alles andere ist eine Implementationsfreiheit deiner C-Bibliothek. rand benutzt man korrekt so:
Code:
srand( (unsigned)time()); ///< _einmal_ zu Beginn des Programms

int n = rand() % 5; ///< liefert eine Zufallszahl zwischen einschließlich 0 und 4
Die Version von arnd enthält insofern einen Fallstrick, dass sie bei Aufrufen innerhalb eines kurzen Zeitintervalls die selben Zufallszahlen liefern könnte (könnte deshalb, weil es diese Funktion im Standard nicht gibt - Du müsstest uns schon deinen Compiler etc. verraten).

Und noch eine Kleinigkeit :) C kennt keine Befehle sondern nur Funktionen.
 
also eigentlich sollte man srand nur einmal pro programmablauf aufrufen und nicht vor jedem rand befehl, da sonst das von 7H3 N4C3R beschriebene problem auftritt.
 
include<time.h>

[...]

randomize(4)
{
bla=random();
}
 
wie bereits erwähnt wurde, ist die verwendung von du random kein sauberes c, weil der befehl nicht teil des standarts ist.
so ist dein code beispielsweise mit dem gcc nicht compilierbar, da dieser den random-befehl nicht kennt.
 
Naja, BSD 4.3 (glaub ich...) definiert auch ein random. Aber kein randomize (dafür srandom). Und es tut zumindest inhaltlich noch etwas anderes. Aber genau richtig, man weiß nicht, was diese Funktion macht, weil sie schlichtweg kein Standard ist und man dazu einfach die Dokumentation des eigenen Bibliotheksherstellers lesen muss.

Wenn ich das aber richtig sehe, geht es um die Borland-Implementierung von random. Und die sollte nach Dr.D's Implementierung okay sein.
 
Zurück
Oben