Hi zusammen
Ich habe mich grade an einer ehemaligen Klausuraufgabe versucht, die ich ziemlich schwierig fand. Ich habe zwar schon eine Lösung, allerdings ist diese ziemlich hässlich und komplex. Außerdem habe ich dafür länger gebraucht als ich in der ganzen klausur zeit haben werde, und ich schreibe auch noch auf papier.
Folgendes Muster soll erzeugt werden:
(so bei 7x7, aber unabhängig von der größe)
Die leeren Stellen des Arrays müssen mit einem Leerzeichen gefüllt sein.
Folgender code ist vorgegeben:
Und hier ist meine unnötig komplexe Lösung:
Habe fast 2 Stunden gebraucht - in der Klausur hab ich dafür vielleicht 15 Minuten, und kann auch nicht nach jeder Zeile die Ausgabe nachgucken, weil ich ja auf Papier schreibe. Kann mir jemand helfen? :/
Ich habe mich grade an einer ehemaligen Klausuraufgabe versucht, die ich ziemlich schwierig fand. Ich habe zwar schon eine Lösung, allerdings ist diese ziemlich hässlich und komplex. Außerdem habe ich dafür länger gebraucht als ich in der ganzen klausur zeit haben werde, und ich schreibe auch noch auf papier.
Folgendes Muster soll erzeugt werden:
Code:
B
B C
B C
B B
C B
C B
B
(so bei 7x7, aber unabhängig von der größe)
Die leeren Stellen des Arrays müssen mit einem Leerzeichen gefüllt sein.
Folgender code ist vorgegeben:
Java:
public class Muster {
char[][] feld; public Muster(int n) {
if (n<5) n = 5; if (n%2 == 0) n = n+1; feld = new char[n][n];
}
public void fuelleArrayMitBC() {
//Auf diesen Teil bezieht sich die Aufgabe
}
Und hier ist meine unnötig komplexe Lösung:
Java:
// alle reihen durchgehen
for (int i = 0; i < feld.length; i++) {
// erstmal alles mit leerzeichen
for (int j = 0; j < feld[i].length; j++)
feld[i][j] = ' ';
// obere hälfte
if (i <= feld.length / 2) {
feld[i][feld[i].length / 2 + i] = 'C';
feld[i][feld[i].length / 2 - i] = 'B';
}
// untere hälfte
if (i >= feld.length / 2) {
feld[i][i - feld.length / 2] = 'C';
feld[i][feld.length - 1 - (i - (feld.length / 2))] = 'B';
}
// falsches C überschreiben
feld[feld.length / 2][0] = 'B';
// Ausgabe
for (int f = 0; f < feld.length; f++)
System.out.print(array[i][f] + " ");
System.out.println();
}
Zuletzt bearbeitet von einem Moderator: