zufälliges element aus einem array in c

Wie kann ich wählen Sie ein zufälliges element aus einem Zeichen-array in c ?

Zum Beispiel:

char *array[19];

array[0] = "Hi";


array[1] = "Hello";

etc

Ich bin auf der Suche nach so etwas wie array[rand], rand, wo ist die zufällige ganze Zahl zwischen o und das array die Länge(in diesem Fall 20), wie 1, 2, 3 , 19, usw.

Sie sind auf der Suche nach rand()
vielleicht char* array[20];
Also, klar zu sein, 20 * rand() ist nicht korrekt. Verwenden rand() % 20. Allerdings, wenn Ihr array 20 Elemente lang, müssen Sie fixieren Sie Ihre Deklaration von Variablen! Sind Sie nur die Zuteilung von 19 Elemente.
Verwenden Sie kein % weil die Ergebnisse nicht einheitlich. Die Multiplikation von U(0,1) - Wert mal 20 und Böden geben einen int von 0 bis 19, D. H., 20 Elemente alle zu null-basiertes array-Indizes.
Was @pjs ist refereing, ist dieses Problem aus der linux-man-Seiten: "Die Versionen von rand() und srand() in der Linux C-Bibliothek benutzen den selben Zufallszahlengenerator wie random(3) und srandom(3), so dass die unteren bits werden sollte so zufällig wie die höherwertigen bits. Jedoch, bei älteren rand () - Implementierungen auf aktuellen Implementierungen auf verschiedenen Systemen, die unteren bits sind viel weniger zufällig als die höherwertigen bits. Verwenden Sie diese Funktion nicht im vorgesehenen Anwendungen tragbar sein, wenn die gute Zufälligkeit erforderlich ist. (Random(3) statt.)"

InformationsquelleAutor Rrjrjtlokrthjji | 2013-06-20

Schreibe einen Kommentar