sid1900 Geschrieben 29. September 2003 Geschrieben 29. September 2003 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
Schledo Geschrieben 29. September 2003 Geschrieben 29. September 2003 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
sid1900 Geschrieben 29. September 2003 Autor Geschrieben 29. September 2003 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.
nic_power Geschrieben 29. September 2003 Geschrieben 29. September 2003 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
Schledo Geschrieben 29. September 2003 Geschrieben 29. September 2003 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
sid1900 Geschrieben 29. September 2003 Autor Geschrieben 29. September 2003 Die Idee klingt gut aber.. die ersten Buchstaben sind immer PH.. ich hätt da auch gern mal was anderes stehen.
nic_power Geschrieben 29. September 2003 Geschrieben 29. September 2003 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
sid1900 Geschrieben 29. September 2003 Autor Geschrieben 29. September 2003 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden