MalteAhrens Geschrieben 14. Januar 2005 Geschrieben 14. Januar 2005 Hallo, zunächst zum Programm: Vielleicht kennt ihr dieses Beispiel ja schon: --- gmäeß eneir Sutide eneir elgnihcesn Uvinisterät, ist es nchit witihcg in wlecehr Rneflogheie die Bstachuebn in eneim Wrot snid, das ezniige was wcthiig ist, ist dsas der estre und der leztte Bstabchue an der ritihcegn Pstoiion snid. Der Rset knan ein ttoaelr Bsinöldn sien, tedztorm knan man ihn onhe Pemoblre lseen. Das ist so, wiel wir nciht jeedn Bstachuebn enzelin leesn, snderon das Wrot als gseatems. Ehct ksras! Das ghet wicklirh! --- Der Benutzer soll ein Wort eingeben und ich will die Buchstaben zwischen dem ersten und dem letzten Zeichen vertauschen, so wie es im obigen Beispiel geschehen ist. Allerdings liefert mir der Zufallszahlengenerator immer die gleiche Zahl, obwohl ich ihn immer mit einer neuen Zeit initialisiere... Irgendjemand eine Idee wie ich das realisieren kann? #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { char wort[100] = { 0 }, hilf[100] = { 0 }, misch[100] = { 0 }; //Initialisierung der Arrays mit Nullen int i=0,k=0,p=0,marker=0,fak=1,pruef=1,zufall=0,verbraucht[100] = { 0 }; printf("Geben sie ein Worter ein: "); scanf("%99s",&wort); printf("Ihre Eingabe: %s\n\n",wort); do { hilf[i]=wort[i+1]; i++; printf("Ubertrag des %d. Buchstaben des eingegebenen Wortes in das neue Array\n",i+1); } while(wort[i]!=0); printf("\nDas Wort besteht aus %d Buchstaben\n\n",i); do { gen : srand( (unsigned int)time(NULL) ); // Initialisiert den Random-Generator mit der akt. Zeit in Sek zufall=rand()%i; /* Pseudo-Zufallszahl zwischen der Gesamtbuchstabenanzahl und 0*/ if(zufall==verbraucht[k]) { printf("Ungueltige Zufallszahl"); printf("Zufall: %d\n",zufall); goto gen; } else { verbraucht[k]=zufall; k++; printf("\nDie %d. Zuordnung erfolgreich generiert\n",k); printf("Zufall: %d\n",zufall); printf("Verbraucht: %d,\n",verbraucht[1]); misch[p]=hilf[zufall]; p++; } } while(k!=i-2); printf("\nKopie des Wortes: %s\n",wort); printf("Mischmasch: %c%s%c",wort[0],misch,wort[i-1]); printf("\n---\n"); system("PAUSE"); return 0; }[/PHP] Gruß, Malte Zitieren
Klotzkopp Geschrieben 14. Januar 2005 Geschrieben 14. Januar 2005 Du solltest den Zufallszahlengenerator nur einmal initialisieren, vor der Schleife. Zitieren
MalteAhrens Geschrieben 14. Januar 2005 Autor Geschrieben 14. Januar 2005 *Kopfschüttel* -man man man- war ja eigentlich klar, dass ich nicht selber darauf gekommen bin. Es klappt jetzt - vielen Dank. Gruß, Malte Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.