Einführung in das mehrdimensionale Array in C

Dieser Artikel konzentriert sich auf das mehrdimensionale Array in c, das hauptsächlich in der Computer- und Forschungsanalyse verwendet wird. Im Allgemeinen fokussiert ein Array eine Information, die als eindimensional bezeichnet wird, linear. Single dimensional speichert Daten nur einzelne Informationen wie regno der Schüler. In einigen Situationen ist es erforderlich, Daten in einem Tabellenformat zu speichern, das Zeilen und Spalten enthält, oder komplexe Daten zu verarbeiten. Zur Visualisierung benötigen wir ein Matrixformat, das wir als zweidimensionale Arrays bezeichnen, bei denen die Anordnungen Pixel des Bildes und Grafiken erfordern. Die Daten werden tabellarisch gespeichert. Array-Manipulationen werden durchgeführt, indem ein Element mit Funktionen wie Umformen und Drücken neu angeordnet wird.

Wie deklariert man ein mehrdimensionales Array in C?

Syntax:

Die allgemeine Deklaration eines mehrdimensionalen Arrays lautet:

type name ( size) (size)……. N;

  • Name des Datentyps - Gibt den Typ der Elemente an (Integer, Float).
  • Array name - Bezeichnet den dem dimensionalen Array zugewiesenen Namen.
  • Zeilengröße - Anzahl der Zeilenelemente z. Zeilengröße = 8, dann hat das Array 8 Zeilen.
  • Spaltengröße - Anzahl der Spaltenelemente.

Wie initialisiere ich das mehrdimensionale Array in C?

Die Größe der mehrdimensionalen Arrays wird vorhergesagt, indem die Größe verschiedener Dimensionen multipliziert wird. Und sie speichern Werte auf zwei Arten, z. B. in Zeilen- und Spaltenmajor. Die Speicherzuordnung überprüft sowohl die Längen- als auch die Rängeigenschaften.

In C gibt es drei Arten von mehrdimensionalen Arrays:

  1. Zweidimensionales Array
  2. Dreidimensionales Array
  3. Vierdimensionales Array

1. Zweidimensionales Array

Das zweidimensionale Array ist als Matrix strukturiert und wird mithilfe von Zeilen und Spalten implementiert, die auch als Array von Arrays bezeichnet werden. Die Speicherzuordnung erfolgt entweder in Zeilen- und Spaltenmajor. Das Standardformat ist Row-Major. Wenn ein 2D-Array erstellt wird, wird jedes Element als 1-D-Array betrachtet oder als Sammlung eines 1-D-Arrays. Das zweidimensionale Array verwendet zwei für Schleifen oder verschachtelte Schleifen, wobei äußere Schleifen von 0 bis zum ersten Index ausgeführt werden.

Syntax:

type array name ( no. of rows) ( no. of Columns);

Beispiel:

int td (4)(3);

hier ist 4 die nr. von Reihen und 3 ist die Nr. von Spalten.

Initialisierung eines zweidimensionalen Arrays

Die Initialisierung im 2-D-Array erfolgt auf verschiedene Arten. Dies wird hier gezeigt.

int m (3)(2) = ((10, 3) (4, 2) (6, 4) (5, 4) (3, 4));
int di (2)(4) = (10, 5, 8, 12, 45, 13, 11, 61);

Hier haben wir die Nr. Erwähnt. Anzahl der Zeilen und Spalten im Feld Es ist zwingend erforderlich, den zweiten Index zuzuweisen, um den Compiler über das Ende und den Anfang der Zeile zu informieren. Die folgende Tabelle zeigt die Speicherzuordnung des 2-D-Arrays.

Die Anzahl der Elemente wird durch Manipulieren einer Anzahl von Zeilen und Spalten und Multiplizieren von Nr. von Zeilen und Spalten. zum Beispiel die Nr. von Elementen enthält ein Array B (-2… 4, -3.6). Sie wird nach Untergrenze und Obergrenze berechnet.

No. of rows= UB-LB +1
=4-(-2) +1 = 4+2+1= 7
No. of columns = UB-LB +1
= 6-(-3) + 1= 11
No. of elements = Rows * columns = 7 * 11 =77 elements

Implementierung

Dies erfolgt mit den Implementierungen Row Major und Column Major

Reihen-Major:
Die Formel zur Adressmanipulation lautet:
= B +W ( n(I-1) +(J-1))
Wobei b- die Basisadresse und n- die Anzahl der Spalten für W Bytes ist.
Hauptkolumne:
= B +W ( r(j-1) +(i-1))
wo r - ist die nr. von Reihen.

Beispiele für zweidimensionale Arrays

Beispiele für zweidimensionale Arrays sind:

Beispiel 1

Jedes Element eines Arrays A (-10.10, 20… 35) benötigt 1 Byte Speicher. Und das Array passt in Spalte Major an der Adresse 400. Finden Sie die Position von A (0, 30).

Lösung

BA =400, W=1
R = no. of rows -> 10-(-10) +1 = 21
I= -10; J= 20
Address A (0, 30) = 400 + 1((0-(-10) +21(30-20))) =400 +(10+21*10)
=400 +(10+210) = 620

Eine bekannte Operation, die im 2-d-Array ausgeführt wird, ist die Algebra der Matrizen mit der m * n-Matrix von B. Das mathematische Konzept der Matrix wird genauso wie bei der Programmierung implementiert.

Das folgende Beispiel speichert ein Element im Matrixformat und druckt es aus.

Code:

#include
int main ()
(
int a(3)(4), i, j;
for(i = 0; i < 3; i++)
(
for(j = 0; j < 4; j++)
(
printf("Enter arr(%d)(%d): ", i, j);
scanf("%d", &a(i)(j));
)
)
printf("\nEntered 2-D array is: \n\n");
for(i = 0; i < 3; i++)
(
for(j = 0; j < 4; j++)
(
printf("%3d ", a(i)(j) );
)
printf("\n");
)
return 0;
)

Ausgabe:

Beispiel # 2

C-Programm, das die Summe von zwei Matrizen durchführt.

Code:

#include
int main()
(
int mat(20)(20);
int i, j, r, c;
int s;
printf("Enter number of Rows :");
scanf("%d", &r);
printf("Enter number of Cols :");
scanf("%d", &c);
printf("\nEnter matrix elements :\n");
for(i=0;i< r;i++)
( for(j=0;j< c;j++)
(
printf("Enter the number of inputs (%d, %d) : ", i+1, j+1);
scanf("%d", &mat(i)(j));
)
)
printf("\n");
for(i=0;i< r;i++)
(
s=0;
for(j=0;j< c;j++)
(
printf("%d\t", mat(i)(j));
s+=mat(i)(j);
)
printf("\tSUM : %d", s);
printf("\n");
)
)

Das obige Programm berechnet die Summe von zwei Matrizen A (20, 20) B (20, 20), vorausgesetzt, sie haben zwei identische Matrizen. Die for-Schleife benötigt zwei Eingangsmatrixen und Schleifen, um die Matrix zu akzeptieren.

Ausgabe:

Beispiel # 3

Transponieren einer Matrix

Vertauschen Sie Zeilen und Spalten, um eine neue Matrix zu erstellen, die als Transponierung einer Matrix bezeichnet wird.

Beispiel:

Dann Transponieren geben,

Matrix-Transponierung mit C-Programm

Code:

#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)

Im obigen Programm Um eine Matrix zu lesen, haben wir zwei for-Schleifen verwendet und um ihre Transponierte auszudrucken, wird die Ausgabe mit der verschachtelten for-Schleife angezeigt. Hier haben wir 3 * 3 Matrix verwendet.

Ausgabe:

2. Dreidimensionales Array

Es wird Array von Array-Elementen oder Array von Matrizen genannt. Es ist ziemlich lebhaft, aber sobald Sie sich mit der Logik vertraut gemacht haben, ist die Implementierung einfacher. und dieses 3-D-Array erfordert mehr als drei Dimensionen und benötigt die Speicherkapazität zum Speichern.

Es kann deklariert werden als:

data_type array_name (table name) ( no. of row) ( no. of column) int L(m)(n) (p);

int L (3) (4) (2); Hier kann das Array L 24 Elemente aufnehmen. Und all diese können während des Kompilierungsprozesses initialisiert werden, aber wenn sie nicht initialisiert werden, werden sie in einen Garbage-Wert verschoben.

Die Initialisierung kann wie bei einem zweidimensionalen Array erfolgen. Hier ist ein Beispiel,

int L (2)(3)(4) = (((2, 2, 1, 3), (1, 6, 5, 11), (22, 11, 13, 5)), ((13, 5, 77, 8), (6, 8, 2, 4), (3, 2, 7, 8)));

Beispiele für dreidimensionale Arrays

Hier einige Beispiele für das dreidimensionale Array:

Beispiel 1

Im Folgenden finden Sie ein einfaches Beispiel für die C-Programmierung, das ein dreidimensionales Array veranschaulicht. Es wird eine Schleife verwendet, indem 3 for-Schleifen für 3D-Elemente berücksichtigt werden.

Code:

#include
void main()
(
printf("three dimensional array!\n\n");
int i, j, k, s(2)(1)(2), siz;
siz=2*1*2;
printf("Enter %d elements: \n", siz);
for(i = 0; i < 2; ++i)
(
for (j = 0; j < 1; ++j)
(
for(k = 0; k < 2; ++k )
(
scanf("%d", &s(i)(j)(k));
)
)
)
printf("The stored values are:\n\n");
for(i = 0; i < 2; i++)
(
for (j = 0; j < 1; j++)
(
for(k = 0; k < 2; k++)
(
printf("sample(%d)(%d)(%d) = %d\n", i, j, k, s(i)(j)(k));
)
)
)
)

Ausgabe:

Beispiel # 2

Ein weiteres Beispiel für ein 3D-Array zum automatischen Drucken von Elementen.

Code:

#include
int main()
(
int m(2)(3)(2) =
(
( (1, 2), (3, 5), (6, 5) ),
( (8, 3), (8, 7), (9, 11) )
);
for (int i = 0; i <2; ++i)
(
for (int j = 0; j <3; ++j)
(
for (int k = 0; k <2; ++k)
printf("Value at m(%d)(%d)(%d) = %d\n", i, j, k, m(i)(j)(k));
)
)
)
return 0;
)

Ausgabe:

3. Vierdimensionales Array

Es handelt sich um ein dreidimensionales Array, und es ist sehr schwierig, die Dimensionen zu verwalten. Es wird als Bündel von Würfeln zusammen betrachtet und ist für Raumvektoren anwendbar.

Erklärung des 4-D-Arrays:

Geben Sie den Array-Namen (1) (2) (3) (4) ein. (n) wobei 1, 2 die Dimensionen bezeichnet und n die n-ten Dimensionen impliziert.

Beispiel:

int state (5)(6)(7)(8);

Beispiel eines vierdimensionalen Arrays

C-Programm zur Implementierung eines 4-D-Arrays.

Code:

#include
int main()
(
int i, j, k, l, s;
int d(2)(2)(2)(2);
s = 2;
d(0)(0)(0)(0) = 4;
d(0)(0)(0)(1) = 3;
d(0)(0)(1)(0) = 2;
d(0)(0)(1)(1) = 6;
d(0)(1)(0)(0) = 6;
d(0)(1)(0)(1) = 8;
d(0)(1)(1)(0) = 1;
d(0)(1)(1)(1) = 2;
d(1)(0)(0)(0) = 6;
d(1)(0)(0)(1) = 9;
d(1)(0)(1)(0) = 5;
d(1)(0)(1)(1) = 1;
d(1)(1)(0)(0) = 9;
d(1)(1)(0)(1) = 7;
d(1)(1)(1)(0) = 5;
d(1)(1)(1)(1) = 7;
for (i = 0; i < s; i++) (
for (j = 0; j < s; j++) (
for (k = 0; k < s; k++) (
for (l = 0; l < s; l++) (
printf("Value of stdio(%d)(%d)(%d)(%d): %d ", i, j, k, l, d(i)(j)(k)(l));
printf("\n");
)
)
)
)
return 0;
)

Ausgabe:

Fazit

Zum Schluss haben wir in diesem Artikel mehrdimensionale Arrays und ihre Subtypen in der C-Programmierung besprochen. Und auch ihre Deklaration und der Zugriff auf die Elemente in einem Matrixformat. Diese Techniken werden im Konzept wie die Implementierung der binären Suche und Sortierung angewendet. Hierbei spielt ein Index eine Schlüsselrolle, da er ein Element in der Array-Struktur angibt.

Empfohlene Artikel

Dies ist eine Anleitung zum mehrdimensionalen Array in C. Hier diskutieren wir, wie das mehrdimensionale Array in C zusammen mit Beispielen initialisiert wird. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren.

  1. Beste C-Compiler
  2. 2D-Arrays in C #
  3. 2-D-Arrays in C
  4. C Speicherklassen
  5. C Programmieren der Matrixmultiplikation
  6. 3 verschiedene Arten von Arrays in PHP (Beispiele)
  7. Wie funktioniert ein Array unter Unix mit Syntax?