Veröffentlicht 14. Januar 200520 j 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
14. Januar 200520 j Du solltest den Zufallszahlengenerator nur einmal initialisieren, vor der Schleife.
14. Januar 200520 j *Kopfschüttel* -man man man- war ja eigentlich klar, dass ich nicht selber darauf gekommen bin. Es klappt jetzt - vielen Dank. Gruß, Malte
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.