Veröffentlicht 29. September 200321 j Hallo, ich hätt da mal ein Problem, Zufallszahlen erzeugen ist ja noch ganz einfach aber Zufallsbuchstaben (eine ungeordnete Aneinanderreihung des Alphabets) z.B: nicht: abcd.. sondern: axtm.. halt rein zufällig. Ich steh auf dem Schlauch, vielleicht könnt ihr mir ja weiter helfen. Danke
29. September 200321 j Hmmm, spontan fällt mir da folgende Lösung ein: Füll ein Array mit den Buchstaben des Alphabetes, also array = Buchstabe und greife dann über den Index mit einer zufallsgenerierten Zahl auf das Array zu und schwupps kannst Du eine zufällige Aneinenaderreihung von Buchstaben des gewünschten Alphabetes erzeugen Möglicherweise gibt es sinnvollere Lösungen, aber diese ist einfach und sollte funktionieren
29. September 200321 j Wie soll das aussehen? array=a,b,c.. oder arry[0]=a; array[1}=b; array[2]=c; .. ich arbeite noch nicht so lange mit C deshalb die Frage.
29. September 200321 j Hallo, oder nimm Deine Zufallszahl modulo 26, addiere das Ergebnis zu 65 (Großbuchstaben) bzw. 97 (Kleinbuchstaben) und interpretiere dies als ASCII-Wert: int main (int argc, char **argv) { int i; for(i=0; i!=100; i++) { printf("%c ", rand()%26+65); } } [/php] Nic
29. September 200321 j Original geschrieben von sid1900 Wie soll das aussehen? array=a,b,c.. oder arry[0]=a; array[1}=b; array[2]=c; .. ich arbeite noch nicht so lange mit C deshalb die Frage. So wie das Zweite, aber die Lösung von nic_power ist professioneller
29. September 200321 j Die Idee klingt gut aber.. die ersten Buchstaben sind immer PH.. ich hätt da auch gern mal was anderes stehen.
29. September 200321 j Hallo, das liegt daran, dass rand() Pseudozufallszahlen erzeugt, die bei gleichem seed identisch sind. Du kannst allerdings den seed des Generators mit srand(seed) setzen. Um unterschiedliche Zahlen bei jedem Aufruf zu erhalten, empfiehlt sich folgendes Konstrukt vor der Verwendung von rand() aufzurufen (1x, ausserhalb der Schleife): srand(time()); Nic
29. September 200321 j Hi Nic, so klappts dann auch mit dem nachbarn: C #include <stdio.h> #include <stdlib.h> #include <time.h> int main (int argc, char **argv) { int i; srand((unsigned)time(NULL)); for(i=0; i!=2; i++) { printf("%c", rand()%26+65); } } Vielen Dank
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.