Hallöchen Allerseits!
Ich hab heute mal mit einem Crashkurs Java angefangen und bin aktuell beim Thema mehrdimensionale Arrays. Dabei hab ich mir ne Übung vorgenommen, bei der ich zwei 10x10 Arrays erstellen soll, welche Zeile für Zeile einmal von 1-100 und einmal von 100-1 durchnummeriert werden und dann in strukturierter Matrix-Form ausgegeben werden sollen.
Das war bisher auch kein wirkliches Problem. Hier mein Code:
Als Ergebnis spuckt mir Eclipse dann wie erwartet folgendes raus:
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
100 99 98 97 96 95 94 93 92 91
90 89 88 87 86 85 84 83 82 81
80 79 78 77 76 75 74 73 72 71
70 69 68 67 66 65 64 63 62 61
60 59 58 57 56 55 54 53 52 51
50 49 48 47 46 45 44 43 42 41
40 39 38 37 36 35 34 33 32 31
30 29 28 27 26 25 24 23 22 21
20 19 18 17 16 15 14 13 12 11
10 9 8 7 6 5 4 3 2 1
Nun besteht der zweite Teil der Aufgabe darin, dass ich die beiden Arrays addieren soll. Mein erster Gedanke war: "Füge ich folgendes einfach ein"
Das Programm funktioniert zwar einwandfrei, allerdings spuckt es mir für die Summe das falsche Ergebnis aus:
2 4 6 8 10 12 14 16 18 20
22 24 26 28 30 32 34 36 38 40
42 44 46 48 50 52 54 56 58 60
62 64 66 68 70 72 74 76 78 80
82 84 86 88 90 92 94 96 98 100
102 104 106 108 110 112 114 116 118 120
122 124 126 128 130 132 134 136 138 140
142 144 146 148 150 152 154 156 158 160
162 164 166 168 170 172 174 176 178 180
182 184 186 188 190 192 194 196 198 200
Obwohl es eigentlich so aussehen sollte:
101 101 101 101 101 101 101 101 101 101
101 101 101 101 101 101 101 101 101 101
101 101 101 101 101 101 101 101 101 101
101 101 101 101 101 101 101 101 101 101
101 101 101 101 101 101 101 101 101 101
101 101 101 101 101 101 101 101 101 101
101 101 101 101 101 101 101 101 101 101
101 101 101 101 101 101 101 101 101 101
101 101 101 101 101 101 101 101 101 101
101 101 101 101 101 101 101 101 101 101
Kann mir jemand sagen, wo mein Fehler liegt?
Okay, Thema kann gleich wieder geschlossen werden. Mir ist gerade ein Geistesblitz gekommen und ich habe herausgefunden woran es lag.
Für die interessierten:
Ich habe beim zweiten Array (m2) mit den beiden for-schleifen die Reihenfolge, wie es durchnummeriert wird vertauscht. Das Summen-Array hingegen rechnet einfach nur die Summe der Werte nach der Reihenfolge der Durchnummerierung aus.
Lösung: Die Durchnummerierung der zweiten Schleife (m2) genau wie gehabt bei der ersten Schleife vornehmen (also die gleichen for-Schleifen bei m2 wie bei m1 benutzen) und es geht.
Ich hab heute mal mit einem Crashkurs Java angefangen und bin aktuell beim Thema mehrdimensionale Arrays. Dabei hab ich mir ne Übung vorgenommen, bei der ich zwei 10x10 Arrays erstellen soll, welche Zeile für Zeile einmal von 1-100 und einmal von 100-1 durchnummeriert werden und dann in strukturierter Matrix-Form ausgegeben werden sollen.
Das war bisher auch kein wirkliches Problem. Hier mein Code:
Java:
public class Matrix {
public static void main(String[] args) {
int[][] m1 = new int[10][10];
int[][] m2 = new int[10][10];
int a = 1,b = 100;
for (int x = 0; x < 10; x++){
for (int y = 0; y < 10; y++){
m1[x][y] = a;
a++;
if(y==0){System.out.print("\n");}
System.out.print(m1[x][y]+" ");
}}
System.out.print("\n");
for (int x = 9; 0 <= x; x--){
for (int y = 9; 0 <= y; y--){
m2[x][y] = b;
b--;
if(y==9){System.out.print("\n");}
System.out.print(m2[x][y]+" ");
}}}}
Als Ergebnis spuckt mir Eclipse dann wie erwartet folgendes raus:
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
100 99 98 97 96 95 94 93 92 91
90 89 88 87 86 85 84 83 82 81
80 79 78 77 76 75 74 73 72 71
70 69 68 67 66 65 64 63 62 61
60 59 58 57 56 55 54 53 52 51
50 49 48 47 46 45 44 43 42 41
40 39 38 37 36 35 34 33 32 31
30 29 28 27 26 25 24 23 22 21
20 19 18 17 16 15 14 13 12 11
10 9 8 7 6 5 4 3 2 1
Nun besteht der zweite Teil der Aufgabe darin, dass ich die beiden Arrays addieren soll. Mein erster Gedanke war: "Füge ich folgendes einfach ein"
Java:
// Oben bei den Variablen initialisiert:
int[][] mS = new int[10][10];
// Unten an der richtigen Stelle zwischen die } eingefügt:
System.out.print("\n");
for (int x = 0; x < 10; x++){
for (int y = 0; y < 10; y++){
mS[x][y] = m1[x][y] + m2[x][y];
if(y==0){System.out.print("\n");}
System.out.print(mS[x][y]+" ");
}}
Das Programm funktioniert zwar einwandfrei, allerdings spuckt es mir für die Summe das falsche Ergebnis aus:
2 4 6 8 10 12 14 16 18 20
22 24 26 28 30 32 34 36 38 40
42 44 46 48 50 52 54 56 58 60
62 64 66 68 70 72 74 76 78 80
82 84 86 88 90 92 94 96 98 100
102 104 106 108 110 112 114 116 118 120
122 124 126 128 130 132 134 136 138 140
142 144 146 148 150 152 154 156 158 160
162 164 166 168 170 172 174 176 178 180
182 184 186 188 190 192 194 196 198 200
Obwohl es eigentlich so aussehen sollte:
101 101 101 101 101 101 101 101 101 101
101 101 101 101 101 101 101 101 101 101
101 101 101 101 101 101 101 101 101 101
101 101 101 101 101 101 101 101 101 101
101 101 101 101 101 101 101 101 101 101
101 101 101 101 101 101 101 101 101 101
101 101 101 101 101 101 101 101 101 101
101 101 101 101 101 101 101 101 101 101
101 101 101 101 101 101 101 101 101 101
101 101 101 101 101 101 101 101 101 101
Kann mir jemand sagen, wo mein Fehler liegt?
Okay, Thema kann gleich wieder geschlossen werden. Mir ist gerade ein Geistesblitz gekommen und ich habe herausgefunden woran es lag.
Für die interessierten:
Ich habe beim zweiten Array (m2) mit den beiden for-schleifen die Reihenfolge, wie es durchnummeriert wird vertauscht. Das Summen-Array hingegen rechnet einfach nur die Summe der Werte nach der Reihenfolge der Durchnummerierung aus.
Lösung: Die Durchnummerierung der zweiten Schleife (m2) genau wie gehabt bei der ersten Schleife vornehmen (also die gleichen for-Schleifen bei m2 wie bei m1 benutzen) und es geht.
Zuletzt bearbeitet von einem Moderator: