quadratisches Array füllen

Infoxi_2-2

Mitglied
Hallo,

in einer Aufgabe soll ich ein quadratisches Array in der übergebenen Kantenlänge mit aufsteigenden natürlichen Zahlen füllen. Beginnen soll das ganze bei 1. Für jede Zeile sollen so viele Zahlen eingetragen werden, wie in das Array passen. Es soll genau eine Schleife benutzt werden.
Tipp: ganzzahliges Teilen und Modulo-Rechnung

Code:
public class ArrayFuellen{
  public static void fuelleArray(int kantenlaenge){



  }
}
In dieser Methode soll das ganze ausgeführt werden

Kann mir jemand helfen, wie dieser Code aussehen müsste? Ich weiß nicht, wie das mit einer for-Schleife möglich sein soll

Ich würde so anfangen, dass ich zuerst einmal das Array erstelle:
int[][]a = new int[kantenlaenge][kantenlaenge];

dann würde ich eine For-Schleife nehmen:

Code:
for(int i = 0; i < kantenlaenge; i++){
   a[i][i] = i+1;
}


Dies wird nicht zur richtigen Lösung führen, da ich weder Teilen noch Modulo-Rechnung beachtet habe. Kann mir jemand weiterhelfen?

LG 🙂
 
Mit Deinem Code füllst Du ja auch nicht alle Felder.

Also wenn Du alle Felder füllen sollst, dann brauchst Du eine for-Schleife, die genau so viele Schritte hat, wie es Felder gibt.

Also wäre die erste Frage: Wie viele Felder gibt es denn?

Dann musst Du Dir überlegen, wie Du aus einem Feld mit Nummer nr auf die x und y Koordinate kommst. Dazu würde ich Dir raten, mal einfach ein Beispiel aufzuschreiben - z.B. ein 4x4 Array. Und dann kannst Du Dir ja mal überlegen, wie Du die Felder durchnummerieren kannst und wie Du dann auf x und y Koordinate kommen kannst.

Konrad
 
Es gibt so viele Felder, wie ich über Kantenlänge gegeben bekomme, oder?
Normalerweise bräuchte ich ja zwei For-Schleifen um auf die x und y Koordinate zu kommen, aber das ist ja laut Aufgabenstellung nicht gefordert?
 
Tipp: modulo operator % und division /
Den einen Teil bekommst geschenkt, den anderen Teil kannst du dir ja selber überlegen^^
Eine Schleife von 0 bis anzahl aller felder:
i % breite gibt dir den index innerhalb einer Zeile.
 
heißt das jetzt so viel wie, dass ich die Matrix in der For-Schleife nicht mit
Code:
a[i][i]

fülle, sondern mit irgendwas mit i, modulo und dividieren?
igendwie komme ich dabei nicht weiter :/
 
@Infoxi_2-2
Ja genau das ist gemeint. Die Indeces werden mit % bzw / erzeugt.

@Jardcore
Ich nehme an die Zellen der Arrays sollen mit fortlaufenden Zahlen gefüllt werden. Endergebnis für ein int[3][3]:
Code:
[1][2][3]
[4][5][6]
[7][8][9]

Infoxi_2_2 möge mich verbessern, wenn ich falsch liege.
 
jetzt bin ich mir tatsächlich selbst nicht mehr sicher, wie die Matrix aussehen soll.
Aufgrund der Aufgabenstellung ist natürlich auch die Darstellung von X5-599 möglich, vermitlich sogar korrekt!
 

Zurück
Oben