Mehrdimensionale Arrays
Teil des Abschnitts Grundlagen der C-Journey von Coddy. Lektion 56 von 63.
Ein mehrdimensionales Array ist ein Array aus Arrays. In C kannst du ein 2D-Array (das häufigste mehrdimensionale Array) erstellen, im Wesentlichen eine Tabelle mit Zeilen und Spalten.
Deklariere ein 2D-Array:
int matrix[3][4];Dadurch wird ein 2D-Array mit 3 Zeilen und 4 Spalten erstellt. Die Indizes beginnen bei 0, daher reichen die Zeilenindizes von 0 bis 2 und die Spaltenindizes von 0 bis 3.
Du kannst ein 2D-Array bei seiner Deklaration initialisieren:
int matrix[3][4] = {
{1, 2, 3, 4}, // Erste Zeile
{5, 6, 7, 8}, // Zweite Zeile
{9, 10, 11, 12} // Dritte Zeile
};Um auf Elemente in einem 2D-Array zuzugreifen, verwendest du zwei Indizes:
int value = matrix[1][2]; // Zeilenindex 1 (zweite Zeile), Spaltenindex 2 (dritte Spalte): value ist 7So änderst du ein Element in einem 2D-Array:
matrix[0][3] = 100; // Ändert das Element mit Zeilenindex 0 und Spaltenindex 3 auf 100Du kannst auch verschachtelte Schleifen verwenden, um auf alle Elemente eines 2D-Arrays zuzugreifen:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n"); // Neue Zeile nach jeder Zeile
}Aufgabe
EinfachErstelle eine Funktion namens printDiagonal, die ein zweidimensionales quadratisches Array (bei dem die Anzahl der Zeilen der Anzahl der Spalten entspricht) entgegennimmt und die Elemente auf der Hauptdiagonalen (von links oben nach rechts unten) ausgibt.
Die Funktion sollte:
- Ein ganzzahliges Array und seine Größe als Parameter entgegennehmen.
- Jedes Element auf der Hauptdiagonalen ausgeben (bei der der Zeilenindex dem Spaltenindex entspricht).
- Die Elemente jeweils durch ein Leerzeichen trennen.
Zum Beispiel, gegeben sei das Array:
1 2 3 4 5 6 7 8 9
Die Funktion sollte Folgendes ausgeben: 1 5 9
Probier es selbst
#include <stdio.h>
// Funktion zur Ausgabe der Diagonalelemente einer quadratischen Matrix
void printDiagonal(int matrix[][100], int size) {
// Schreibe deinen Code hier
}
int main() {
int size;
scanf("%d", &size);
int matrix[100][100];
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
scanf("%d", &matrix[i][j]);
}
}
printDiagonal(matrix, size);
return 0;
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
2Variablen
DatentypenGanzzahlGleitkommazahl – DoubleZeichenBoolesche WerteKonstantenprintf-GrundlagenRegeln für die Benennung von VariablenTypumwandlung Teil 1Typumwandlung Teil 2Wiederholungsaufgabe3Operatoren
Arithmetische OperatorenModulo-OperatorInkrement/DekrementZuweisungsoperatorenVergleichsoperatorenLogische Operatoren Teil 1Logische Operatoren Teil 2Logische Operatoren Teil 3Wiederholungs-ChallengeÜbe selbstständig: Online-C-Compiler