Hallo zusammen.
Ich hab ein kleines Problemchen.
Ich muss von der Schule her ein Programm schreiben, dass ein magisches Quadrat generiert.
Die Grösse des Quadrates ist n(Eingabe). Leider funktioniert es aber nicht. Hier der Quelltext.
Ich hoffe ihr könnt mir helfen.
Liebe Grüsse fr0st
Ich hab ein kleines Problemchen.
Ich muss von der Schule her ein Programm schreiben, dass ein magisches Quadrat generiert.
Die Grösse des Quadrates ist n(Eingabe). Leider funktioniert es aber nicht. Hier der Quelltext.
Ich hoffe ihr könnt mir helfen.
Java:
package kapitel4;
import javax.swing.*;
public class MagischesQuadrat {
public static void main(String[] args) {
// Abfrage für die grösse des magischen Quadrates
String Eingabe = JOptionPane.showInputDialog ("Ungerade Zahl zwischen 1 und 10 eingeben: ");
int n = Integer.parseInt(Eingabe);
// Kontrolle, ob es die richtige Zahl ist
if(n>2 && n<10 && n%2 != 0) {
JOptionPane.showMessageDialog (null, "Magisches Quadrat wird berechnet!");
}
else {
JOptionPane.showMessageDialog (null, "Error");
JOptionPane.showMessageDialog (null, "Bitte starten sie das Programm neu.");
System.exit (0);
}
// Initialisieren des Arrays
int Quadrat[][] = new int [n][n];
int zeile = ((n/2)+1);
int spalte = (n/2);
Quadrat[zeile][spalte] = 1;
// Einfüllen der Zahlen
for (int i = 1; i == n; i++) {
Quadrat[zeile][spalte] = i;
spalte++;
zeile--;
if (zeile < 0) {
zeile = (n-1);
}
if (spalte == n) {
spalte = 0;
}
if (Quadrat[zeile][spalte] == 0){
zeile++;
spalte++;
if (zeile == n) {
zeile = 0;
}
if (spalte == n) {
spalte = 0;
}
}
}
// Ausgabe des Magischen Quadrates
for (int i2 = 0; i2 < Quadrat.length; i2++) {
for (int j = 0; j < Quadrat.length; j++)
System.out.print("\t" + Quadrat[i2][j]);
System.out.println(" ");
}
}
}
Liebe Grüsse fr0st