ZahlenMuster implementieren

canyakan95

Bekanntes Mitglied
Hallo ich soll mit einem 2d-array folgendes implementiert bekommen;
12345
109876
1112131415
2019181716
2122232425

meine überlegung war und ich habe auch dran geglaubt, dass das eig klappen sollte, das er einfach in der inneren for schleife meinen start und mein ende vertauscht und weiter hochzählt, bis ich durch bin.
aber mit meiner implementation haut das nicht hin.
habe ich einen denkfehler oder ist meine implementation nicht erfolgreich.
mfg

hier mein code:
Code:
public class ZahlenMuster {

    public static void main (String[]args)
    {
        int n=5;
        int [][] feld = new int[n][n];
        int start=0;
        int ende=feld.length-1;
        int zahlen=1;
       
       
        //ZahlenMuster
        for(int zeile=0;zeile<feld.length;zeile++)
        {
            int temp;
            for(int spalte=start;spalte<=ende;spalte++)
            {
                feld[zeile][spalte]=zahlen++;
            }
            temp=start;
            start=ende;
            ende=temp;
        }
       
        //Ausgabe
        for(int zeile=0;zeile<feld.length;zeile++)
        {
            for(int spalte=0;spalte<feld[zeile].length;spalte++)
            {
                System.out.print(feld[zeile][spalte]+"\t");
            }
            System.out.println();
        }
    }
}
 
Hallo,

wie entwickelst Du derzeit? Ich würde Dir raten, eine Entwicklungsumgebung zu nutzen, die Dir auch einen Debugger anbietet. Dann kannst Du Schritt für Schritt durch Dein Programm gehen und so genau sehen, was wann passiert.

Wenn Du ein Problem hier vorbringst, ist es zudem sinnvoll, das Verhalten genauer zu beschreiben. Was geht bei Dir nicht? In Deinem Fall funktioniert das Füllen jeder zweiten Zeile nicht.

Mit der Erkenntnis kannst Du Dir das Füllen näher ansehen. Du hast eine Schleife, deren Abbruchbedingung spalte<=ende ist und bei der Du spalte immer eins hochzählen willst. Damit kannst Du das Array schön füllen, so Du die Spalten hochgehst. Aber in jeder zweiten Spalte füllst Du doch in der anderen Richtung, d.h. weder die Abbruchbedingung noch das Hochzählen ist korrekt.

Viele Grüße,

Konrad
 

Zurück
Oben