Random Funktion spuckt Fehler aus
-
Kann mir jemand helfen und sagen, weshalb meine RAND Funktion nicht funktioniert. Der Compiler sagt, dass rand in Zeile 26 und 29 nicht deklariert wurde, was will er mir damit sagen?
#include <iostream> using namespace std; void generiereZahlen (int N, int array[]); void berechneWerte (int N, int array[], int &min, int &max, int &mid); void ausgabe (int mid, int min, int max); int main() { const int N=80; int min=0; int max=0; int mid=0; int Werte[N]={0}; generiereZahlen (N, Werte); berechneWerte (N, Werte, min, max, mid); ausgabe (min, max, mid); return 0; } void generiereZahlen (int N, int array[]) { srand(0); for (int i=0;i<N;i++) { array[i]=rand()%1000; } } void berechneWerte (int N, int array [], int &min, int &max, int &mid) { min=array[0]; max=array[0]; for (int i=0;i<N;i++) { mid +=array[i]; if (array[i]>max) { array[i]=max; } if (array[i]<min) { array[i]=min; } } mid /=N; } void ausgabe (int mid, int min, int max) { cout << "Mittelwert:\t" << mid; cout << "Minimum:\t" << min; cout << "Maximum:\t" << max; }
-
Da fehlt ein #include <cstdlib>...
Du solltest srand() nur ein einziges Mal aufrufen, nach Möglichkeit mit einem sich ändernden Wert (gern wird time()) genommen, damit du unterschiedliche Reihen von Zufallszahlen erzeugst. Identische seeds erzeugen immer die gleiche Reihe von Zufallszahlen, bin mir nicht sicher, ob du das willst.PS:
Wenn du keine negativen Zahlen haben willst solltest du unsigned int statt int benutzen.
-
Das der passende Header fehlt ->
#include <cstdlib>
-
Lol, manchmal ist es doch so einfach;)
Danke euch beiden!
-
Du solltest (vielleicht gleich am besten am Anfang der main() das seed so initialisieren:
srand( time(NULL) );Gleiches seed gibt sonst immer gleiche Zufallszahlen.
*Edit
Für die Funktion time(...) musst du noch#include <ctime>machen.
-
Guter Tip, ist mir eben auch schon aufgefallen, dass immer das gleiche rauskommt.
-
Was bewirkt eigentlich der Parameter NULL bei der time() Funktion?
-
"Alternativelly, this parameter can be a null pointer, in which case the parameter is not used, but a time_t object is still returned by the function." von ctime reference