Aufgabe 18d

EIDI-Crashkurs 2020 Aufgabe 18d

  • Dieses Thema hat 2 Antworten und 1 Teilnehmer, und wurde zuletzt aktualisiert vor 4 Jahren, 1 Monat von Pingu.
Ansicht von 3 Beiträgen - 1 bis 3 (von insgesamt 3)
  • Autor
    Beiträge
  • #3232 Antworten
    Pingu

    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

    #3234 Antworten

    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.

    #3236 Antworten
    Pingu

    Ok, dann orientiere ich mich doch lieber an deiner Lösung. Danke

Ansicht von 3 Beiträgen - 1 bis 3 (von insgesamt 3)
Antwort auf: Antwort #3236 in Aufgabe 18d

Deine Nachricht und Pseudonym (Name) sind für alle einsehbar (Datenschutz).

Deine Information: