2D-Array als Tabelle ausgeben ?

  • Themenstarter Themenstarter misaki
  • Beginndatum Beginndatum
M

misaki

Gast
Hallo,

ich verzweifle grade an einer Aufgabe die ich bekommen habe:
Schreiben Sie ein Programm, das eine positive int-Zahl n einliest und n Zeilen mit n Spalten ausdruckt dergestalt dass in Zeile i in Spalte j das Zeichen '*' gedruckt wird genau dann wenn i*i <= j gilt (und andernfalls das Zeichen '.').

Ich habe mich jetzt dran gesetzt und das ganze mal mit 0 und 1 versucht, weil der Compiler mit * und . maulte, dass das ja keine integer Zahlen werden. Dem Problem wollte ich mich aber später widmen, zuerst möchte ich, dass die Ausgabe grundsätzlich funktioniert.

Mein Code sieht folgendermaßen aus:

Java:
public class Bsp08 {

	public static void main(String[] args) {
	
	int n; // Anzahl der Spalten und Zeilen
	int i; // Nummer der Zeile
	int j; // Nummer der Spalte
	
	System.out.println("");
	System.out.println("Geben Sie eine positive, ganze Zahl fuer die Anzahl der Spalten und Zeilen an:");
	n = SavitchIn.readLineInt();
	
	int[][] matrix = new int [n][n];
	
	for (i=0; i < matrix.length; i++)
		for (j=0; j < matrix[i].length; j++)
			{if (i*i<=j)
				matrix[i][j] = 1;
			else 
				matrix[i][j] = 0;
			System.out.println(matrix[i][j] + "");};
	}
}

Nun ja. Die Ausgabe meiner Matrix sieht nicht tabellenförmig aus, was eigentlich mein Problem ist. Jeder einzelner Matrixwert bekommt eine einzelne Zeile - das wollen wir aber nicht, schließlich ist eine Tabelle mit n Zeilen und n Spalten gefragt. Wie kann ich so etwas ausgeben ?
 
Java:
for (i=0; i < matrix.length; i++){
        for (j=0; j < matrix[i].length; j++){
            if (i*i<=j)
                matrix[i][j] = 1;
            else 
                matrix[i][j] = 0;
            System.out.print(matrix[i][j] + "");
        }
        System.out.println():
}


Versuch mal so 🙂

Und für die Darstellung der Zeichen nimmst du nen char statt nem int array.
 
Ja, aber wenn ich nur print nehme, schreibt er mir alles in einer Wurst hin.
Und wenn ich folgendes nehm:

Java:
	for (i=0; i < matrix.length; i++)
		for (j=0; j < matrix[i].length; j++)
			{if (i*i<=j)
				matrix[i][j] = 1;
			else 
				matrix[i][j] = 0;
			System.out.print(matrix[i][j] + "\t");}
			System.out.println();;

macht er auch keine Umbrüche, sondern nur Abstände zwischen die einzelnen Werte.
 

Neue Themen


Zurück
Oben