Programmieren 2d Arrays?
Kann jemand mir bei lösen diese Aufgabe vielleicht helfen?
Programmiersprache = C#
Danke im voraus!
4 Antworten
Du musst jetzt festlegen was du reingibst, der Einfachheit halber sagst du einfach eine Spalte ein Array.
Du hast ein Array mit drei Arrays drin, ...
jedes Array im Array reverst du
Am besten mit einer Schleife, geh nur bis zur Hälfte der Länge... und swap dann die Elemente... Frag mich nicht ob es in diesem großartigen Konstrukt .NET dafür ne Funktion gibt die das direkt tut, aber bestimmt! Microsoft sorgt bekanntlich für jede Kleinigkeit vor, so lachthaft sie auch scheinen mag.
int[,] array = new int[3,3] {
{ 1,2,3,4 },
{ 5,6,7,8 },
{ 9,10,11,12 },
};
int[,] reversiertesarray = RotateMatrix(array, 4);
static int[,] RotateMatrix(int[,] matrix, int n) {
int[,] ret = new int[n, n];
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
ret[i, j] = matrix[j, i];
}
}
return ret;
}
Das Array musst du natürlich mit deinen Werten ausfüllen.
Tausche Spalte i mit Spalte (Anzahl Spalten - i) bis zur ⌊Anzahl Spalten / 2⌋ Spalte.
Der Algorithmus ist in wenigen Zeilen erledigt. Wo genau hast du denn da ein Problem das du da seit mehreren Tagen dranhängst
Möglicherweise hilft dir das hier, auch wenn hier auch die Zeilen umgedreht werden, aber das kannst du ja dann beliebig abändern...
Hast du damit nicht die Matrix transponiert?