Einführung in 2D-Arrays in C

Ein Array ist eine Gruppe von Elementen mit demselben (homogenen) Datentyp. Es wird auch als abgeleiteter Datentyp bezeichnet. Wenn wir einen primitiven Datentyp betrachten und einen Wert wie unten gezeigt zuweisen,

Und jetzt, wenn wir einen neuen Wert in der Variablen a speichern wollen, ersetzt der neue Wert den alten Wert. Bei Verwendung einer primitiven Variablen können wir immer nur einen Wert speichern. Es können nicht mehrere Werte gespeichert werden.

Um mehr als ein Element in einer einzelnen Variablen zu speichern, z. B. Schülermarken, Mitarbeiter-IDs und Handynummern mit einer großen Datenmenge, müssen Hunderte eindeutiger Variablen erstellt werden. Dies ist eine sehr komplexe Aufgabe. Deshalb wurde das Konzept der Arrays eingeführt.

Konzepte in 2-D-Arrays in C

Wir können Arrays in definieren

  • Eindimensional
  • Zweidimensional

Und so weiter bis zu N-dimensional, basierend auf der Anforderung. Aber hier werden wir uns mit 2-D-Arrays befassen. Wie der Name schon sagt, können 2-D-Arrays eine Matrixdarstellung von Daten sein, die zur Implementierung einer relationalen datenbankähnlichen Datenstruktur erstellt und in Tabellenform gespeichert werden können. Es erleichtert das Speichern der Massendaten, die je nach Anforderung an eine beliebige Anzahl von Funktionen übergeben werden können. Auf die Daten in diesen Arrays kann über die Zeilen- und Spalten-IDs zugegriffen werden.

Wie können wir sie definieren und umsetzen? Wo können wir sie einsetzen? Gehen wir noch weiter und verstehen wir diese Konzepte.

In C können dimensionale Arrays wie folgt deklariert werden:

Syntax

Auf die gleiche Weise können wir das 2-D-Array wie folgt deklarieren:

Die Bedeutung der obigen Darstellung kann verstanden werden als:

  1. Der der Variablen b zugewiesene Speicher ist vom Datentyp int.
  2. Die Daten werden in Form von 2 Zeilen und 3 Spalten dargestellt.


Auf die Daten innerhalb des Arrays kann über die obige Darstellung zugegriffen werden. In der Darstellung von 2-D-Arrays steht die erste eckige Klammer für die Anzahl der Zeilen und die zweite für die Anzahl der Spalten. Die Indexdarstellung des Arrays für das erste Element beginnt immer mit Null und endet mit Größe-1. Die Arrayvariable (hier b) enthält immer die Basisadresse des Speicherblocks und wird als interne Zeigervariable bezeichnet.

Wenn also beispielsweise die Anzahl der Zeilen 3 ist, ist die Indexdarstellung für den Zugriff auf die Daten in Zeilen 0, 1 und 2. Dieselbe Logik gilt auch für die Spaltenindizes. Für die obige Darstellung können wir auf b (1) (2) zugreifen, um die Daten der 3. Spalte der 2. Zeile zu erhalten.

Arrays initialisieren

Wir haben zwei verschiedene Methoden, um die Werte in C zu initialisieren. Die Methoden unterscheiden sich nur syntaktisch.

Unten ist einer von ihnen.

Eine andere Art der Initialisierung ist wie folgt:

Im Allgemeinen wird die erste Initialisierungsmethode bevorzugt, da wir die Zeilen und Spalten von 2D-Arrays in C klar verstehen und visualisieren können.

Unten sehen Sie ein Beispiel für die bildliche Darstellung von Elementen und deren Adresse für Array b.

Die Elemente eines Arrays werden normalerweise auf der Grundlage des Datentyps der Elemente an aufeinanderfolgenden Speicherorten gespeichert.

Einfügen von Elementen in 2D-Arrays

Zum Einfügen von Elementen in 2D-Arrays müssen die Daten sowohl in Zeilen als auch in Spalten eingefügt werden. Deshalb verwenden wir das Konzept der Schleifen. In dem obigen Prozess zum Initialisieren der Daten in einem Array hatten wir die Werte vordefiniert.

Hier können Elemente je nach Anforderung vom Benutzer dynamisch eingefügt werden. Unten finden Sie einen Beispielcode zum Einfügen der Elemente.

#include
int main()
(
int b(2)(3);
int i, j, num;
printf("Enter elements into 2-D array: ");
for(i=0;i<2;i++)
(
for(j=0;j<3;j++)
(
scanf("%d", &b(i)(j));
)
)
)

Wie im Code angegeben:

  1. Zunächst deklarieren wir die Arrayvariable und die Dimensionen des Arrays mit der Anzahl der Zeilen und Spalten.
  2. Anschließend deklarieren wir zwei Variablen, um die Elemente im Array zu durchlaufen.
  3. Dann werden for-Schleifen verwendet. Die äußere for-Schleife ist für die Zeileniteration und die innere Schleife für die Spalten.
  4. Die Scanf-Funktion wird verwendet, um die Daten bei der Eingabe zu lesen und dann den eingegebenen Wert an die Positionen von i und j zu setzen.

Im obigen Beispiel haben wir die Daten in eine Matrix mit 2 Zeilen und 3 Spalten eingefügt. Die Ausgabe der folgenden kann wie folgt erhalten werden:

Da wir die printf-Funktion nicht zum Anzeigen der Ausgabe verwendet haben, hat das geschriebene Programm nur die vom Benutzer eingegebenen Werte gelesen. Nach dem Schreiben der Druckfunktion (unter Verwendung von for-Schleifen) wird die Ausgabe wie folgt angezeigt:

Aktualisieren Sie Elemente in 2D-Arrays

Die Aktualisierung von Elementen in einem Array kann entweder durch Festlegen eines bestimmten zu ersetzenden Elements oder durch Festlegen einer Position erfolgen, an der das Ersetzen erfolgen muss. Für die Aktualisierung benötigen wir im Allgemeinen die folgenden Angaben.

  1. Elemente eines Arrays
  2. Position / Element, an der es eingefügt werden soll
  3. Der einzufügende Wert.

Um die Daten in einem Array über Elementdetails zu aktualisieren, müssen Sie zuerst nach diesem Element im Array suchen, dessen Position verstehen und dann das alte Element durch das neue Element ersetzen.

Im Folgenden sind zwei Beispiele für die Aktualisierung des Elements eines 2D-Arrays aufgeführt.

Lassen Sie uns zunächst ein Beispiel durchgehen, bei dem die Position des zu aktualisierenden Elements bereits bekannt ist.

#include
int main()
(
int b(2)(3);
int i, j, num;
printf("Enter elements into 2-D array: ");
for(i=0;i<2;i++)
(
for(j=0;j<3;j++)
(
scanf("%d", &b(i)(j));
)
)
b(0)(2)=10;
for(i=0;i<2;i++)
(
for(j=0;j<3;j++)
(
printf("\t%d", b(i)(j));
)
printf("\n");
)
return 0;
)

In dem obigen Programm wird das Element in der 1. Zeile und der 3. Spalte ausgewählt und der Wert der Daten an dieser Position wurde aktualisiert.

Die Ausgabe für oben ist wie folgt:

Im zweiten Beispiel wird gezeigt, wie die Position des Elements dynamisch als vom Benutzer eingegebener Wert übernommen und der Wert des Elements an dieser bestimmten Position aktualisiert werden kann.

#include
int main()
(
int b(2)(3);
int i, j, num;
printf("Enter elements into 2-D array: ");
for(i=0;i<2;i++)
(
for(j=0;j<3;j++)
(
scanf("%d", &b(i)(j));
)
)
printf("Enter the value of row and coulmn number :");
scanf("%d %d", &i, &j);
printf("Enter the number you want to update with: ");
scanf("%d", &num);
b(i)(j)=num;
for(i=0;i<2;i++)
(
for(j=0;j<3;j++)
(
printf("\t%d", b(i)(j));
)
printf("\n");
)
return 0;
)

Hier haben wir die scanf-Funktion verwendet, um den vom Benutzer angegebenen Wert gemäß seiner Wahl für die Position eines Elements basierend auf Zeilen- und Spaltennummern zu lesen.

Die Ausgabe ist wie folgt:

Können Sie als Übung versuchen, ein Programm zum Aktualisieren der gesamten Matrixzeile mit benutzerdefinierten Werten zu schreiben?

Nun, wie wir wissen, deklarieren wir im 2-D-Array die Größe des Arrays am Anfang. Wir kennen die Größe des Arrays, aber was ist, wenn der Benutzer eine zufällige Zeilen- und Spaltennummer außerhalb unserer Arraygröße angibt?

Beachten Sie, dass sich die Ausgabe der Matrix nicht ändert, da wir keine if / else-Bedingung oder try / catch-Blöcke geschrieben hatten. Wir können den Code jedoch unter Verwendung der oben genannten Bedingungen schreiben, um in solchen Fällen Fehler anzuzeigen.

Elemente in 2D-Arrays löschen

Nach den Konzepten des Einfügens und Aktualisierens der Daten innerhalb des Arrays wollen wir nun sehen, wie wir eine ganze Zeile aus dem Array löschen können.

Wir haben ein Programm in einem einfachen Format geschrieben, damit das Konzept der verschiedenen Operationen in einem 2D-Array leicht verstanden werden kann.

#include
int main()
(
int b(2)(3), i, j, num, x;
printf("Enter elements into 2-D array: ");
for(i=0;i<2;i++)
(
for(j=0;j<3;j++)
(
scanf("%d", &b(i)(j));
)
)
printf("Enter the value of row number :");
scanf("%d", &x);
for(i=0;i<2;i++)
(
if(i==x)
(
for(j=0;j<3;j++)
(
if((i+1)<2)
(
printf("\t%d", b(i+1)(j));
)
)
i++;)
else
(
for(j=0;j<3;j++)
(
printf("\t%d", b(i)(j));
)
)
printf("\n");
)
)

Die folgenden Schritte sind:

  1. Hat die Werte eines Arrays dynamisch übernommen
  2. Aufforderung an den Benutzer, die Nummer (Index) der zu löschenden Zeile einzugeben.
  3. Bei Verwendung der Schleifeniteration wird verglichen, ob die Zeilennummer und die Benutzereingabenummer übereinstimmen oder nicht.
  4. Wenn sie übereinstimmen und die Zeilennummer kleiner als die Größe eines Arrays ist, drucken wir die nächste Zeile. Ansonsten drucken wir die Zeile so, wie sie ist.

Die Ausgabe ist wie folgt:

Was ist, wenn ich die Zeilennummer außerhalb der Array-Grenze gebe?

Die zu löschende Zeile wird nicht gefunden, und das Programm wird durch Drucken des gesamten Arrays beendet.

Wie bereits bekannt, können wir die Werte für die Zeilen- und Spaltennummern sogar dynamisch deklarieren und das Programm entsprechend schreiben.

Sieht das nicht einfach und leicht zu lernen aus?

Können Sie als Übung versuchen, ein bestimmtes Element für das 2D-Array jetzt zu löschen?

Fazit

In diesem Abschnitt haben wir die grundlegenden Operationen für zweidimensionale Arrays erlernt. Diese 2D-Arrays sind in Echtzeit mit den Matrixoperationen und vielen mathematischen Berechnungen nützlich.

Arrays können sogar zur Anzeige von Kalendern und Platzierungen auf dem Parkplatz verwendet werden, und wir können sogar ein Schachspiel veranstalten.

Viele andere Datenstrukturen wie verknüpfte Listen, Warteschlangen, Diagramme und Bäume müssen dieses Konzept von 2-D-Arrays als Grundvoraussetzung für das Speichern und Zugreifen auf die Positionen verschiedener Elemente verwenden. Versuchen Sie, die Grundoperationen der 2D-Arrays zu lösen, und haben Sie Spaß beim Lernen von C.

Empfohlene Artikel

Dies ist eine Anleitung zu 2D-Arrays in C. Hier wird die Einführung, Initialisieren von Arrays, Einfügen, Aktualisieren und Löschen von Elementen in 2D-Arrays beschrieben. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. Arrays in R
  2. Vorteile des Arrays
  3. Arrays in C ++
  4. Arrays in JavaScript
  5. Beispiele für Arrays in C #
  6. Arrays in PHP