Auf Thema antworten

Du musst dir den vorherigen Wert ansehen wenn du dein Ausgabe-Array fuellst, und dann dementsprechend das notwendige Zeichen waehlen. In etwa so (Pseudo-Code):


[CODE="java"]for (int index = 0; index < way.length; index++) {

    int currentAltitude = way[index];


    if (index > 0) {

        int previousAltitude = way[index - 1];

       

        if (previousAltitude < currentAltitude) {

            set("/");

        } else if (previousAltitude == currentAltitude) {

            set("-");

        } else if (previousAltitude > currentAltitude) {

            set("\\");

        }

    } else {

        set("-");

    }

}[/CODE]


Als Anmerkung zu deiner Loesung, du erstellst im Moment ein 100x100 Array, das ist so nicht nowendig. Du kannst das Array auf way.length()x5 schrumpfen.


Eine andere, relativ einfache Moeglichkeit waere es das Array fuer jede Zeile durchzugehen und dann zu drucken wenn der Wert der aktuellen Zeile entspricht, in etwa so (Pseudo-Code):


[CODE="java"]for (int lineAltitude = 5; lineAltitude > 0; lineAltitude--) {

    for (int wayIndex = 0; wayIndex < way.length(); wayIndex++) {

        int currentAltitude = way[wayIndex];

       

        if (currentAltitude == lineAltitude) {

            System.out.print("*");

        } else {

            System.out.print(" ");

        }

    }

   

    System.out.println();

}[/CODE]


Alternativ kann man auch eine [ICODE]foreach[/ICODE] einsetzen:


[CODE="java"]for (int lineAltitude = 5; lineAltitude > 0; lineAltitude--) {

    for (int currentAltitude : way) {

        if (currentAltitude == lineAltitude) {

            System.out.print("*");

        } else {

            System.out.print(" ");

        }

    }

   

    System.out.println();

}[/CODE]



Oben