Zufallszahlen erzeugen
Dienstag, 10. September 2002 17:51
#include
#include // Prototypen von srand() und rand() einbinden
int main(int argc, char* argv[])
{
unsigned int i, zahl;
printf("\nBitte geben Sie eine Zahl zwischen 1 und 65535 ein: ");
scanf("%u", &zahl);
srand(zahl); // Den Zufallsgenerator initialisieren
printf("\n\n******* ZUFALLSZAHLEN *******\n");
for( i = 1 ; i <= 15 ; ++i)
printf("\n%15d. Zufallszahl = %3d", i, rand() % 200 + 1);
printf("\n");
return 0;
}
Das Beispiel hat einen großen Nachteil, bei der Eingabe von gleichen Startwerten liefert das Programm dieselben Zufallszahlen. Diese Erscheinung kann man umgehen indem man
srand (zahl); durch
srand((unsigned) time(NULL));
ersetzt. Vorher ist zu includieren. So erhält man Zahlen, welche wirklich einigermaßen zufällig sind.
#include
int main(int argc, char* argv[])
{
unsigned int i, zahl;
printf("\nBitte geben Sie eine Zahl zwischen 1 und 65535 ein: ");
scanf("%u", &zahl);
srand(zahl); // Den Zufallsgenerator initialisieren
printf("\n\n******* ZUFALLSZAHLEN *******\n");
for( i = 1 ; i <= 15 ; ++i)
printf("\n%15d. Zufallszahl = %3d", i, rand() % 200 + 1);
printf("\n");
return 0;
}
Das Beispiel hat einen großen Nachteil, bei der Eingabe von gleichen Startwerten liefert das Programm dieselben Zufallszahlen. Diese Erscheinung kann man umgehen indem man
srand (zahl); durch
srand((unsigned) time(NULL));
ersetzt. Vorher ist