Mehrere Arrays Vergleichen
-
Du drückst dich nicht ganz klar aus. Was meinst du mit kleinerem Wert? Der kleinste Wert? Der kleinste Mittelwert eines Arrays?
Um das Minimum einer Sequenz zu bestimmen, hilft dir der STL-Algorithmus
std::min_element()
.Wenn du eher ein mathematisches Array brauchst, kannst du
std::valarray
verwenden, das bietet unter anderem auch Funktionen für die Summe und das Minimum aller Elemente. Weitere Informationen dazu findest du in der MSDN.MagicalFlyingMoron schrieb:
Na ganz einfach in einer Schleife.
Die Zahlen kann du mit atof(const charaus <cstdlib> auslesen.
Nein! Nicht umsonst sind wir hier im C++-Forum. Es gibt in C++ eindeutig schönere Möglichkeiten, siehe Beschreibung oben.
-
Sorry. Ich weiß jetzt gar nicht wie ich auf die Zdee gekommen bin, dass du die Zahlen als text gespeicher hast!
Das mit dem Komma hat mich irgendwie Verwirrt.
am besten du schreibst dir eine Funktion kleinster(),die dir den kleinsten Wert in einem Array zurückgibt:
[code]
double kleinster(double *werte,int laenge)
{
double kleinst=werte[0];
int pos=0;
for(int i=0;i<laenge;++i)
{
if(werte[i]<kleinst)
{
-
Sorry. Ich weiß jetzt gar nicht wie ich auf die Zdee gekommen bin, dass du die Zahlen als text gespeicher hast!
Das mit dem Komma hat mich irgendwie verwirrt.
am besten du schreibst dir eine Funktion kleinster(),die dir den kleinsten Wert in einem Array zurückgibt:
double kleinster(double *werte,int laenge) { double kleinst=werte[0]; int pos=0; for(int i=0;i<laenge;++i) { if(werte[i]<kleinst) { kleinst=werte[i]; pos = i; } } return kleinst; }
Dann kannst du die kleinsten werte aus jedem Array vergleichen.
-
@MagicalFlyingMoron,
Lern C++ ... lol
Wie Nexus schon gesagt hat, gibt es diese Funktion bereits:
http://www.cplusplus.com/reference/algorithm/min_element.htmlGrüssli
-
Lern C++ ... lol
Bin grad dabei
sorry, wenn ich jemanden verwirrt habe. kommt nicht wieder vor.
-
MagicalFlyingMoron schrieb:
Lern C++ ... lol
Bin grad dabei
sorry, wenn ich jemanden verwirrt habe. kommt nicht wieder vor.Ich denke mal, dass die Betonung auf C++ lag und nicht lern..
Du benutzt da "alte" C-Funktionalitäten, die du in C++ viel bequmer haben kannst. Daher lern C++ und nicht C. (Oder wechsle das Forum. ;))
-
*schnipp*.
-
Also ich versteh das noch nicht ganz. Vielleicht hab ich mein Problem nicht genau genug erklärt.
Also:
der user gibt verschiedene Werte ein. jeder einzelne wert bekommt alleine ein array.
z.b.:
for(int i=0;i<anzahl;i++) //anzahl=5 { cout<<"Geben Sie eine Zahl ein: "; cin>>name[i]; }
So nun will ich die entstandenen Arrays miteinander vergleichen und das kleinste herrausfinden.
d.h.
array[0] = 2; array[1] = 4; array[2] = 1; //Nun soll er mir den kleinsten wert errechnen und ausgeben.
-
Willy_Wonka schrieb:
jeder einzelne wert bekommt alleine ein array.
Du bist dir mit den Begriffen noch nicht ganz im Klaren. Ein Array ist eine Sequenz von mehreren Elementen, die hintereinander im Speicher liegen. Das, was du als Array bezeichnest, ist dabei nur ein einzelnes Element eines Arrays.
Genau dafür habe ich dir auch den Hinweis mit
std::min_element()
gegeben, diese Funktion sucht aus einem Container (oder auch Array) das kleinste Element. Siehe auch hier.Ansonsten, wenn du das Ganze selber schreiben willst, kannst du ja bei jeder Eingabe prüfen, ob zuvor bereits eine kleinere Zahl eingegeben wurde. Wenn nicht, ist die aktuell eingegebene Zahl das Minimum. Du kannst dazu von Anfang an eine Variable anlegen, die die Eingabe speichert und mit neuen Eingaben verglichen werden kann.
-
Ahh jetzt hab ich es verstanden
Danke Nexus^^