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