Array Zickzack Muster

ChillStudent

Mitglied
Hallo,
meine Aufgabe lautet:

Schreiben Sie ein Java-Programm, das ein rechteckiges Array mit einem Zickzack-Muster füllt
und dann am Bildschirm ausgibt. Beispiel für Programmaufruf:

Anzahl Zeilen: 5
Anzahl Spalten: 20

7 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 7 0 0 0
0 7 0 0 0 0 0 7 0 7 0 0 0 0 0 7 0 7 0 0
0 0 7 0 0 0 7 0 0 0 7 0 0 0 7 0 0 0 7 0
0 0 0 7 0 7 0 0 0 0 0 7 0 7 0 0 0 0 0 7
0 0 0 0 7 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0

Habe zwar schon angefangen, komme aber leider nicht weiter. Bitte um Hilfe!
Das ist bis jetzt meine Idee:
Habe ein wenig mit RautenIn probiert aber komme mit der If-bedingung nicht weiter...

Java:
static int[][] a;
    
    public static void main(String[] args){
    
        	Out.print("Anzahl Zeilen: ");
        	int zeilen = In.readInt();
        	Out.print("Anzahl Spalten: ");
        	int spalten = In.readInt();
    
      a = new int [zeilen][spalten]; 
      RautenIn(zeilen, spalten);
      RautenOut(a);
    }
    
    static int[][] RautenIn(int zeilen, int spalten){
    
    	int [][] b = new int [zeilen][spalten];
    	 
    	 for(int i=0; i<zeilen; i++){
    	 	 
    	 	 for(int j=0; j<spalten; j++){
    	 	 	     	 	 	 
    	 	 	 if(i==j)
    	 	 	 {
    	 	 	 	 b[i][j] = 7;
    	 	 	 }else{
    	 	 	 	 b[i][j] = 0;
    	 	 	 }
    	     
    	     	 }

    	 }
    	 
    	 return b;
    
    }
 
würde das mit einer Schleife machen. z.B.:

Java:
	public static void main(String[] args) {	
		// Demoausgabe
		for (int[] a : zickZack(5, 20)) {
			for (int i : a)
				System.out.print(i);
			System.out.println();
		}
	}

	public static int[][] zickZack(int rows, int cols){
		int i = 0;
		int[][] array = new int[rows--][cols];
		for (int j = 0; j < cols; j++){			
			array[j / rows % 2 == 0 ? i++ : i--][j] = 7;
		}
		return array;
	}
 
Ich danke dir für die Antwort, habe es aber doch noch hinbekommen 🙂

das einzige was ich gebraucht hatte war die if anweisung....

Code:
for(j = 0; j < spalten; j++) {
     i = j % (2 * zeilen - 2);
    
    if(i >= zeilen)
    	i = 2 * zeilen - 2 - i;
    	b[i][j] = 7;
}
 

Zurück
Oben