Zweidimensionales Array mit Werten von 50 bis 1 füllen
-
Hallo,
ich möchte ein zweidimensionales Array mit den Werten von 50 bis 1 füllen (also rückwärts) und danach ausgeben. Bei mir wird jedes Feld mit dem Wert 50 belegt, und dann auch so ausgegeben. Wo ist mein Fehler?????int main() { int aiArray[5][10]; for (int j=0; j<10; j++) { for (int k=4; k>=0; k--) { int i=50; cout << i << "\t"; aiArray[k][j]=i; i--; } } cout << "\n\n"; for (int j=0; j<10; j++) { for (int k=4; k>=0; k--) { cout << aiArray[k][j] << "\t"; } } getchar(); return 0;
-
Du mußt die Variable vor der Doppelschleife deklarieren und initialisieren, sonst wird sie bei jedem Durchlauf neu auf 50 gesetzt.
-
int main() { int Array2D[5][10]; int i = sizeof( Array2D ) / sizeof( int ); for( int i = 0; i < 5; ++i ) for( int j = 0; j < 10; ++j ) Array2D[ i ][ j ] = i--; }
-
aber dann sind die Variablen j und k ja noch unbekannt, und ich muss das ganze bei der definition machen.
-
Man sollte auf seine Namen achten, so nochmal
int main() { int Array2D[5][10]; int x = sizeof( Array2D ) / sizeof( int ); for( int i = 0; i < 5; ++i ) for( int j = 0; j < 10; ++j ) Array2D[ i ][ j ] = x--; }
-
sarah1986 schrieb:
aber dann sind die Variablen j und k ja noch unbekannt, und ich muss das ganze bei der definition machen.
Wieso müssen die Zählvariablen denn bekannt sein, wenn du i anlegst? (Alternativ könntest du i auch in jedem Schleifendurchgang neu berechnen: "int i=50-10*k-j;")
-
kann ich das auch irgendwie mit meinem Lösungsansatz machen? Ich bilde mir ein, dass ich sowas schon mal programmiert habe. kann aber auch sein, dass das mit nem 1-dim.array war.
-
CStoll (off) schrieb:
sarah1986 schrieb:
aber dann sind die Variablen j und k ja noch unbekannt, und ich muss das ganze bei der definition machen.
Wieso müssen die Zählvariablen denn bekannt sein, wenn du i anlegst? (Alternativ könntest du i auch in jedem Schleifendurchgang neu berechnen: "int i=50-10*k-j;")
sorry, hatte nicht genau gelesen und dich deshalb falsch verstanden. jetzt funzt es. danke