Temperatur mit max. und min.-Wert bestimmung in einem Array
-
c++neuling92 schrieb:
#include <algorithm>sagt mir garnicht

und der rest verwirrt mich auch total, wirkt alles sehr kompilziert.
Ist mein Quelltext denn sooo falsch ? Da Fehlen doch eigentlich nur kleinigkeiten oder ?
Glaub mir: schreib eine Funktion, die nur das Minimum bestimmt. Und sieh dann weiter. Wenn Du soweit bist ist der Rest ein Kinderspiel.
Die Loesung Ausgabe/min/max in einer Funktion ist unübersichtlich und nicht schoen.
Vergiss das
#include <algorithm>für den Moment.
-
void eingabe(int xFeld[5]) { for (int schleife = 0; schleife < 5; schleife++) { int max = 1; cout << "Bitte die Temp der " << schleife + 1 << ". Station eingeben: "; cin >> xFeld[schleife]; if(!(xFeld < max)) { max = wert; } cout << max; } }jetzt sagt er mit aber aber "error c2446 "<" keine konvertierung von "int" in "int" [].
Und noch vieles vieles mehr
-
Habe das ganze wieder etwas abgespeckt zum testen,
jetzt setzt der das Programm immerhin schon mal um. Aber der Max-Wert ist
irgendeine x beliebige Zahl.#include <iostream> using namespace std; void eingabe(int Feld[5]) { int max = Feld[1]; int schleife; for (schleife = 0; schleife < 5; schleife++) { cout << "Bitte die Temp der " << schleife + 1 << ". Station eingeben: "; cin >> Feld[schleife]; } if (max < Feld[schleife]) { max = Feld[schleife]; } cout << "Der Max-Wert betraegt: " << max << endl; } int main() { int zahlenFeld[5]; eingabe(zahlenFeld); getchar(); getchar(); return 0; }
-
Du weist max eine Zufallszahl zu, liest 5 Werte ein und vergleichst max mit einer weiteren Zufallszahl. Die grössere der beiden gibst du aus. Worüber wunderst du dich?
-
Warum bestehst Du darauf, dass Deine Funktion mehrere Dinge gleichzeitig erledigt?
Wenn Du auf die Eingabe durch den Benutzer bestehst, sehe ich die Teilprobleme:
- Eingabe
- Ausgabe
- Minimum suchen / ausgeben
- Maximum suchen / ausgebenEingabe() hast Du ja quasi schon geschrieben
void eingabe(int Feld[5]) { int schleife; for (schleife = 0; schleife < 5; schleife++) { cout << "Bitte die Temp der " << schleife + 1 << ". Station eingeben: "; cin >> Feld[schleife]; } }Die
max()Funktion ist in Deiner Version voneingabe()auch schon versteckt und muss nur herausgelöst werden:void max(int Feld[5]) { int max = Feld[1]; // obacht: indiziert wird mit 0 beginnend! Is' aber hier egal... int schleife; for (schleife = 0; schleife < 5; schleife++) { if (max < Feld[schleife]) { max = Feld[schleife]; } } cout << "Der Max-Wert betraegt: " << max << endl; }Das war's auch schon. Ich habe Die Funktionalitäten Deiner Funktion nur getrennt.
-
okay, cool.
jetzt gibt er mir den max wert aus. nur wie kann ich jetzt noch die Station ermitteln wo der max wert her kommt ?
-
c++neuling92 schrieb:
okay, cool.
jetzt gibt er mir den max wert aus. nur wie kann ich jetzt noch die Station ermitteln wo der max wert her kommt ?Na komm...! Du merkst Dir in einer weiteren Variable den Index des Maximums?!
-
Was man sich auch sparen kann und anstatt dem Index via Arrayzugriff mit Index an den Wert kommt.
-
Danke für die hilfreichen antworten, jedoch muss das Programm doch anderes sein, und zwar sollen die Werte Fix sein und für den Anwender bereits vorgegeben sein.
Nun bin ich zu diesem Quelltext gekommen:/*########## e04_1.2 ###########*/ # include <iostream> using namespace std; int main() { double zahlenFeld[5] = {24.5,28.7,31.2,26.4,32.3}; for (int schleife = 0; schleife < 5; schleife ++) { cout << "Der Wert der " << schleife+1 << ". Station ist: " << zahlenFeld[schleife] << " Grad" << endl; } double max = zahlenFeld[0]; { int schleife; int (max > zahlenFeld[schleife]); { max = zahlenFeld[schleife]; } cout << endl << "Der Max-Wert betraegt: " << max << " Grad and Station " << endl; } double min = zahlenFeld[0]; { int schleife; int (min > zahlenFeld[schleife]); { min = zahlenFeld[schleife]; } } cout << endl << "Der Min-Wert betraegt: " << min << " Grad and Station " << endl; getchar(); return 0; }jetzt bekomme ich gesagt "warning C4700: Die nicht initialisierte lokale Variable "schleife" wurde verwendet."
Ich finde den Fehler allerdings nicht, außerdem werden mir für Max und Min die selben werte ausgeben und auch immer nur von einer Station. Und die bestimmung von welcher Station der Max bzw. Min wert kommt bekomm ich auch net gebacken...Danke für eure Geduld und Nerven

Hoffe ihr könnt mir schnell helfen damit ich das letzte Programm hier fertig bekomme.
-
Der Compiler hat immer recht:
int schleife; int (max > zahlenFeld[schleife]);hier verwendest du "schleife", initialisiert es aber nicht.
Vermutlich möchtest du dort eine zweite Schleife haben. Und nein, "if" ist keine Schleife.
-
c++neuling92 schrieb:
Danke für die hilfreichen antworten, jedoch muss das Programm doch anderes sein, und zwar sollen die Werte Fix sein und für den Anwender bereits vorgegeben sein.
Nun bin ich zu diesem Quelltext gekommen:[...]Tut mir leid, aber ich habe weder Zeit noch Lust immer das gleiche zu schreiben:
Teile das Problem in kleinere Probleme auf und schreibe Funktionen für die Teilprobleme.
(Das Problem Eingabe hat sich ja gerade erledigt.)Und dringendst solltest Du Dir nochmal das Thema Schleifen in Deinen Kursunterlagen anschauen.
Viel Erfolg.