If-Else Exit
-
@Th69 plural in zeile 63 bei der funktion meinst du?
-
Ja, bei der Definition in Zeile 29 als auch beim Aufruf in Zeile 63.
-
Um die Durchschnittsleistung aller Fahrzeuge zu erhalten muss zu jeden Arrayeintrag doch auf die Struct zugegriffen werden oder?
-
double averagePower(Vehicle*fahrzeug)
{double Mittelwert = (fahrzeug[0].power + fahrzeug[1].power )/2; cout<< Mittelwert << ;
}
Das ist mein Gedankengang um auf die einzelenen Leistungseingaben der Fahrzeuge zuzugreifen. Den Wert "Mittelwert" will ich dann in der Main ausgeben,
Leider kommt folgende Fehlermeldung zu meiner Funktion averagePower :
"error: expected primary-expression before ' ; ' token
-
@NoobHunter12 sagte in If-Else Exit:
Leider kommt folgende Fehlermeldung zu meiner Funktion averagePower :
"error: expected primary-expression before ' ; ' token
Der Compiler ist so nett und gibt auch noch Zeile und Spalte an, wo er den Fehler entdeckt hat.
Manchmal schreibt er auch noch sowas:
cout<< Mittelwert << ; ^ // hier kannst du auch die Spalte erkennen
-
@DirkB bei einem ausschnitt wird der fehler demnach in zeile 3 angezeigt. leider ohne spalte
-
@NoobHunter12 sagte in If-Else Exit:
@DirkB bei einem ausschnitt wird der fehler demnach in zeile 3 angezeigt. leider ohne spalte
Und aus ""error: expected primary-expression before ' ; ' token" erfährst du, dass der Compiler einen Ausdruck vor dem ; erwartet.
Ein Ausdruck ist so ziemlich alles, was rechts von einer Zuweisung (Gleichheitszeichen) stehen kann.
Ein Variablenname, ein Literal (String oder Zahl), ein Funktionsaufruf. Jedenfalls etwas, was einen Wert liefert, dencout
da ausgeben kann.Was möchtest du nach Mittelwert denn noch ausgeben?
-
-
@DirkB eigentlich möchte ich nur den Mittelwert (der Leistung) aller eingelesen Fahrzeuge ausgeben..
und Nein, leider steht das nur Zeile 3. Sonst nichts.
-
@NoobHunter12 sagte in If-Else Exit:
eigentlich möchte ich nur den Mittelwert (der Leistung) aller eingelesen Fahrzeuge ausgeben..
Und warum schreibst du dann nach Mittelwert noch die << ?
-
@DirkB weil ich es nicht besser wusste. jetzt ist der fehler weg. Danke dir
-
@NoobHunter12 sagte in If-Else Exit:
@DirkB eigentlich möchte ich nur den Mittelwert (der Leistung) aller eingelesen Fahrzeuge ausgeben..
Nein
Den Wert "Mittelwert" will ich dann in der Main ausgeben,
Deswegen hat die Funktion ja auch ein double als Ergebnis. Du gibst nichts zurück, was natürlich ein Fehler ist.
Außerdem berechnest du den Mittelwert von genau 2 Fahrzeugen, unabhängig von der tatsächlichen Anzahl.
-
@manni66 d.h am ende fehlt noch ein "return Mittelwert" ?
Ja das stimmt. ich würde lieber den mittelwert aller eingelesenen Fahrzeuge berechnen, allerdings schaffe ich es nicht auf die information zuzugreifen bzw die Information in die averagePower() funktion zu übergeben
-
@NoobHunter12 sagte in If-Else Exit:
allerdings schaffe ich es nicht auf die information zuzugreifen bzw die Information in die averagePower() funktion zu übergeben
Du kannst auf das Element 0 und 1 zugreifen, aber nicht auf 2?
Du weißt nicht, wieviel Fahrzeuge in deinem Array sind?
-
@DirkB auf 2 könnte ich auch indem ich einfach "i" quasi inkrementiere, aber das ist ja mit sicherheit nicht der gesucht weg.
Genau. Mein Problem ist, dass ist nicht weiß wie ich alle Leistungen aller Fahrzeuge aus dem Array übergebe um in der Funktion averagePower() den Mittelwert auszurechnen.
-
@NoobHunter12 mit i inkrementieren meine ich eine auflistung aller arrayplätze:
Fahrzeug [0]
+
Fahrzeug[1]
+
Fahrzeug[2]
+
....
Fahrzeug[9]
/2
-
Du weißt doch, wieviel Einträge in dem Array sind, in Deiner main steht doch:
size_t anzahl = readVehicle(fahrzeug);
Dein Funktionskopf sollte also so aussehen:
double averagePower(const Vehicle*fahrzeug, size_t anzahl)
Außerdem musst Du beim anschließenden dividieren überlegen, ob Du wirklich eine Integerdivision haben willst, falls ja, brauchst Du keinen double als Rückgabetyp.
-
@Belli okay verstehe. demnach könnte ich dann anzahl nutzen um zu dividieren.
In der Aufgabe steht: "Das Ergebnis ist eine Fließkommazahl".
-
@Belli (const Vehicle*fahrzeug) bedeutet das nicht, dass immer ein konstantes Fahrzeug an die Funktion übergeben wird?
-
@NoobHunter12
Es wird ein Zeiger auf ein konstantes Fahrzeug übergeben ...
Du willst das Fahrzeug ja in der Funktion nicht verändern.