Array vs. Memo^^
-
Hallo
Wir sind davon ausgegangen, das du weißt, das man Zuweisungen nicht außerhalb von Funktionen schreiben kann...
Diese Initialisierung kannst du nur so schreiben :
int arr[3][4] = {{1,2,3},{11,12,13},{22,23,24}};
bis bald
akari
-
EOutOfResources schrieb:
Der Code sollt in Ordnung sein.
Wird sonst nirgendsarr
verwendet?nö^^
-
akari schrieb:
Hallo
Wir sind davon ausgegangen, das du weißt, das man Zuweisungen nicht außerhalb von Funktionen schreiben kann...
Diese Initialisierung kannst du nur so schreiben :
int arr[3][4] = {{1,2,3},{11,12,13},{22,23,24}};
bis bald
akarimein ziel war es die größte zahl zu finden. denkst du das klappt mit deine version ? ??
??
(3 x 4 Feld)
-
Aha, ich dachte auf Grund der Einrückung, sei der Code aus dem
FormCreate
.
-
markus krauss schrieb:
denkst du das klappt mit deine version ? ??
??
Ja.
-
EOutOfResources schrieb:
markus krauss schrieb:
denkst du das klappt mit deine version ? ??
??
Ja.
ENDLICH.
danke für euer Geduld. dann hat sich das ja erledigt^^
Letzte Frage:Könnt ihr ganz kurzen Sätzen zusammen fassen, wie ich vorgehen muss, wenn
ich die größte Zahl herausfinden und es ausgeben möchte ?(Noch mal vielen Dank :))
-
const unsigned int SizeX = 3, SizeY = 4; //Arraygrössen deklarieren int arr[SizeX][SizeY]; //Array deklarieren int Biggest = INT_MIN; //in C++0x: decltype(arr[0][0]) Biggest = INT_MIN; for(unsigned int SearchX = 0; SearchX < SizeX; SearchX++) //Schleife für X for(unsigned int SearchY = 0; SearchY < SizeY; SearchY++) //Schleife für Y if(arr[SearchX][SearchY] > Biggest) //Falls zu prüfender Wert grösser als jedes bisher Biggest = arr[SearchX][SearchY]; //dann ist er der neue grösste Wert //Hier entspricht Biggest dem grössten Wert des Arrays
-
Sollte aber auch so gehen:
int iMax = SizeX * SizeY; int* parr = &arr[0][0]; int iBiggest = INT_MIN; for (int i = 0; i < iMax; i++) if (*parr > iBiggest) iBiggest = *parr;
Da die Speicheradressen des 2D-Arrays aufeinanderfolgen, kann man sie auch als 1D-Array ansprechen. Hier über einen Zeiger darauf durchgeführt. Falls die Position relevant ist, läßt sich die auch über i wieder nach x und y auflösen.
-
Er kennt den Bereich eines Arrays nicht und sollte wissen, wie es im Speicher liegt?
Aber deine Version ist natürlich schneller!
-
EOutOfResources schrieb:
Er kennt den Bereich eines Arrays nicht und sollte wissen, wie es im Speicher liegt?
Auch wieder wahr...
Dann kann ich nur hoffen, dass es ihm vielleicht es ihm als Anreiz dient, sich mehr mit dem Thema zu beschäftigen. Und anschließend erklären wir ihm, warum Arrays blöd sind und zeigen im die Containerklassen aus der STL.
Und ehrlich gesagt, wenn ich denn tatsächlich schon mal ein mehrdimensionales Array gebraucht habe, dann grundsätzlich eines, dessen Größe zum Programmstart unbekannt ist. Deshalb habe ich immer nur eindimenisionale Arrays verwendet. Alleine schon wegen dem Verwaltungsoverhead bei dynamischen mehrdimensionalen Arrays. Da habe ich dann doch lieber die Offsets aus der Position errechnet.