Zufallszahlen
-
dave2k schrieb:
Wie ihr in der Überschrift lesen könnt, hab ich ein Problem mit den Zufallszahlen.
Ich weiß, dass man diese mit dem Befehl "random" erstellen kann, dennoch ist es mir ein Rätsel wie ich diese in die einzelnen Arrays kriegen soll.Mit einer Schleife vielleicht?!
Im übrigen hast Du nur ein Array.
Zudem hast Du (offenbar) kein Problem mit Zufallszahlen, sondern eher mit Arrays... (Titel falsch)
-
So unnötige Kommentare kannst du dir auch sparen.
Ich habe mich verschrieben. Ich meinte 100 Arrayelemente. -.-
Ich jedem Element eine Zufallszahl zuordnen.
Und das mit der Schleife ist mir ebenfalls bewusst.
Mir geht es aber nicht um die Schleife sondern um die Initialisierung der einzelnen Elemente!
-
#include <algorithm> #include <numeric> #include <cstdlib> #include <ctime> int messwerte[100]; int min; int max; int avg; int main() { std::srand( std::time( 0 ) ); std::generate( messwerte, messwerte+100, std::rand ); min = *std::min_element( messwerte, messwerte+100 ); max = *std::max_element( messwerte, messwerte+100 ); avg = std::accumulate( messwerte, messwerte+100, 0 ) / 100; }
-
HelferInDerNot schrieb:
#include <algorithm> #include <numeric> #include <cstdlib> #include <ctime> int messwerte[100]; int min; int max; int avg; int main() { std::srand( std::time( 0 ) ); std::generate( messwerte, messwerte+100, std::rand ); min = *std::min_element( messwerte, messwerte+100 ); max = *std::max_element( messwerte, messwerte+100 ); avg = std::accumulate( messwerte, messwerte+100, 0 ) / 100; }
[C++ Fehler] Unit1.cpp(8): E2356 Redeklaration von 'min<>(const _T &,const _T &)' mit anderem Typ
[C++ Fehler] Unit1.cpp(8): E2449 Größe von 'min<>(const _T &,const _T &)' unbekannt oder Null
[C++ Fehler] Unit1.cpp(9): E2356 Redeklaration von 'max<>(const _T &,const _T &)' mit anderem Typ
[C++ Fehler] Unit1.cpp(9): E2449 Größe von 'max<>(const _T &,const _T &)' unbekannt oder Null
[C++ Fehler] Unit1.cpp(17): E2335 Überladene Funktion 'min' ist in diesem Kontext mehrdeutig.
[C++ Fehler] Unit1.cpp(19): E2335 Überladene Funktion 'max' ist in diesem Kontext mehrdeutig.
[C++ Fehler] Unit1.cpp(24): E2190 Unerwartetes }
-
Sieht nach einem veralteten Compiler aus. Ansonsten benenn einfach mal die Variablen max und min um. Man sollte diese eh nicht global erzeugen.
-
dave2k schrieb:
So unnötige Kommentare kannst du dir auch sparen.
Das war 'ne super Antwort!!
dave2k schrieb:
Ich habe mich verschrieben. Ich meinte 100 Arrayelemente. -.-
Kann ich ja nicht riechen.
dave2k schrieb:
Und das mit der Schleife ist mir ebenfalls bewusst.
Kann ich ja nicht riechen, Du Honk.
Gesagt hast Du davon kein Ton.dave2k schrieb:
Mir geht es aber nicht um die Schleife sondern um die Initialisierung der einzelnen Elemente!
Häh?
int array[100]; array[3] = 5000; // Weist dem 4. Element den Wert 5000 zu
Jetzt klar?!
-
Sgt. Nukem schrieb:
int array[100]; array[3] = 5000; // Weist dem 4. Element den Wert 5000 zu
Jetzt klar?!
Ich soll sie ja nicht selber Initialisieren sondern über random generieren lassen.
-
Dann nutze das wabbelige Ding zwischen Deinen Ohren doch einfach mal!
Ersetze halt "5000" mit dem was Du willst. random() z.B....
-
Hab´s jetzt hingekriegt. Mein Prog. sieht jetzt so aus :
//--------------------------------------------------------------------------- #pragma hdrstop #pragma argsused #include <conio.h> #include <iostream.h> #include <stdlib.h> //--------------------------------------------------------------------------- input(double y[100]) { randomize(); for (int x=0; x<100;x++) { y[x] = rand(); } } double min(double y[100]) { double min = y[0]; for (int x=0; x<100;x++) { if (y[x] < min) min = y[x]; } return min; } double max(double y[100]) { double max = y[0]; for (int x=0; x<100;x++) { if (y[x] > max) max = y[x]; } return max; } double mit(double y[100]) { double mit = 0; for (int x=0; x<100;x++) { mit = mit+y[x]; } mit=mit/100; return mit; } int main() { double messwerte[100]; input(messwerte); for (int x=0;x<100;x++) { cout << x+1 <<". Messwert : " << messwerte[x] << endl; } cout << endl <<"Kleinster Messwert : " << min(messwerte); cout << endl <<"Groesster Messwert : " << max(messwerte); cout << endl <<"Mittelwert d. Messwerte : " << mit(messwerte); getchar(); return 0; } //---------------------------------------------------------------------------
-
Sieht gut aus, nur solltest du statt "randomize()" lieber "srand(time(NULL))" verwenden, um den Zufalls-Generator zu initialisieren.