M
maxpain
Es handelt sich um eine Funktion die Zufallszahlen erzeugt. Nun möchte ich diese Funktion mehrmals ausführen damit X verschiedene Zahlen erzeugt werden, das X steht für die Anzahl der zu erzeugenden Zahlen. Nun ist es aber das ich, wenn ich die Funktion in einem C programm, in einer Schleife ausführe, wird X mal das selbe Ergebniss angezeigt, wenn ich es jedoch im C++ Stil schreibe werden X verschiedene Zahlen erzeugt. Vielleicht hab ich auch nur was übersehen, kann mir trozdem jemand einen Tipp geben warum es so ist wie es im moment ist?
Hier der Code:
In C wo X mal die selbe Zahl ausgegeben wird
Das selbe Programm in C++, nur hier werden X verschiedene Zahlen ausgegeben
Hier der Code:
In C wo X mal die selbe Zahl ausgegeben wird
Code:
/*
* ZUFALL.C
*
*
*/
#include <cstdio>
#include <ctime>
#include <cstdlib>
short zufall(short, short, double);
short zufall(short min, short max, double delay)
{
short z_zahl = 0u;
time_t start, stop;
time(&start);
do
{
time(&stop);
}while(difftime(stop, start) < delay);
srand((unsigned) time(NULL));
do
{
z_zahl = rand();
}while((z_zahl<min)||(z_zahl>max));
return z_zahl;
}
int main(int argc, char** argv)
{
short min = 0u, max = 0u, i = 0u;
double verz = 0.0l;
printf("Zufallszahlengenerator\n");
printf("Minimale Zufallszahl Bereichszahl eingeben: ");
scanf("%u", &min);
printf("Maximale Zufallszahl Bereichszahl eingeben: ");
scanf("%u", &max);
printf("Verzoegerung eingeben: ");
scanf("%.2f", &verz);
for(short i = 0; i < 7; i++)
printf("%u\n", zufall(min, max, verz));
system("pause");
return 0;
}
Das selbe Programm in C++, nur hier werden X verschiedene Zahlen ausgegeben
Code:
/*
* ZUFALL.CPP
*
*
*/
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
short zufall(short, short, double);
short zufall(short min, short max, double delay)
{
short z_zahl = 0u;
time_t start, stop;
time(&start);
do
{
time(&stop);
}while(difftime(stop, start) < delay);
srand((unsigned) time(NULL));
do
{
z_zahl = rand();
}while((z_zahl<min)||(z_zahl>max));
return z_zahl;
}
int main(int argc, char* argv[])
{
short min = 0u, max = 0u, i = 0u;
double verz = 0.0l;
cout << "Zufallszahlengenerator" << endl;
cout << "Minimale Zufallszahl Bereichszahl eingeben: ";
cin >> min;
cout << "Maximale Zufallszahl Bereichszahl eingeben: ";
cin >> max;
cout << "Verzoegerung eingeben: ";
cin >> verz;
for(short i = 0; i < 7; i++)
cout << zufall(min, max, verz) << endl;
system("pause");
return 0;
}