2dimensionales array initialisieren
-
Hallo, wie kann ich ein 2dimensionales array mit zufallswerten initialisieren?
Per schleife?
-
lol_ohnein schrieb:
Hallo, wie kann ich ein 2dimensionales array mit zufallswerten initialisieren?
Per schleife?was spricht denn dagegen ?
-
wahrscheinlich mein wissen!
ein 2dimarray sieht ja so aus:int array[5][3]; //zum beispielwie soll ich das füllen?
time_t t; srand((unsigned)time(&t)); for(int i=0;i<5;i++) { for[int j=0;j<3;j++) { int e=rand()%30; int z=rand()%30; //aber wie bekomm ich die zahlen ins array?? hab vielleicht nur nen blackout, aber i komm net dazuu...=( } }wäre super wenn ihr mir kurz auf die sprünge helft
-
array[i][j] = rand()%30
-
aber werden da nicht i und j mit gleicher zahl gefüllt?
oder schreibt er überall was andres rein??
-
nein, i und j sind die Indizes (und ändern sich mit jedem Schleifendurchlauf). Und mit der Anweisung "array[i][j]=..." greifst du auf das j-te Element der i-ten Zeile (oder war's Spalte? egal) deines Arrays zu.
-
CStoll schrieb:
Und mit der Anweisung "array[i][j]=..." greifst du auf das j-te Element der i-ten Zeile (oder war's Spalte? egal) deines Arrays zu.
i-te Zeile ist schon richtig.

-
Finde folgendes schöner
for( int i = 0; i < 5; ++i ) std::generate( &array[ i ][ 0 ], &array[ i ][ 3 ], std::rand );Alternativ kann man das for noch zu nem std::for_each machen, allerdings muss man dann noch ne extra Funktion schreiben (schade, dass es keine inline-Funktionen gibt).