- Dieses Thema hat 2 Antworten und 1 Teilnehmer, und wurde zuletzt aktualisiert vor 4 Jahren, 9 Monaten von .
Ansicht von 3 Beiträgen - 1 bis 3 (von insgesamt 3)
Ansicht von 3 Beiträgen - 1 bis 3 (von insgesamt 3)
EIDI-Crashkurs 2020 › Aufgabe 18d
Hallo Stefan
wäre diese alternative Lösung ebenfalls korrekt?
public static int dayWithHighestVariation (double [] t){
double schwank = 0;
for (int i = 0; i<t.lenght-1, i = i+2){
if (t [i+1] – t [i] > schwank){
schwank = t [i+1] – t [i];
}
if (schwank <0)
schwank = -schwank;
int max = i/2 +1;
}
return max;
}
VG und danke
Nein, t[i+1] – t[i]
könnte negativ sein. Dann würdest du nie in den Fall “> schwank” kommen. Der Teil if (schwank <0) schwank = -schwank;
sollte also irgendwie vor dem Vergleich mit schwank
passieren.
Außerdem musst du max
vor der Schleife definieren, sonst kannst du es am Ende nicht zurückgeben (bei dir ist das nur lokal in der Schleife definiert).
max
speichert bei dir auch nicht den richtigen Wert, weil du es einfach immer überschreibst, d. h. die Variable speichert am Ende immer den letzten Tag (bei dem es noch zwei Werte gibt). Du darfst max
nur dann überschreiben, wenn du auch schwank
überschreibst.
Ok, dann orientiere ich mich doch lieber an deiner Lösung. Danke