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


Anmelden zum Antworten