Uvod u višedimenzionalni niz u C

Ovaj se članak fokusira na višedimenzionalni niz u c koji se pretežno koristi u računalnoj i istraživačkoj analizi. Općenito, niz linearno fokusira informaciju za koju se kaže da je jednodimenzionalan. Jednodimenzionalni podaci pohranjuju samo pojedinačne informacije poput regno učenika. U nekim je situacijama potrebno pohraniti podatke u format tablice koja sadrži redove i stupce ili za obradu složenih podataka. Da bismo je vizualizirali, potreban nam je format matrice koji smo nazvali dvodimenzionalnim nizovima, gdje aranžman zahtijeva piksele slike, grafike. Podaci se pohranjuju u tabelarnom obliku. Manipulacije arrayom ​​izvode se preuređivanjem elementa pomoću funkcija kao što su preoblikovanje, stiskanje.

Kako deklarirati višedimenzionalni niz u C?

Sintaksa:

Opća deklaracija višedimenzionalnog niza dana je kao:

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

  • Ovdje naziv vrste podataka - Označava vrstu elemenata (cijeli broj, plutaj).
  • Naziv niza - Označava naziv dodijeljen dimenzionalnom nizu.
  • Veličina retka - Broj elemenata reda row-size = 8, a niz ima 8 redaka.
  • Veličina stupca - Broj elemenata stupca.

Kako inicijalizirati višedimenzionalni niz u C?

Veličina višedimenzionalnih nizova predviđa se množenjem veličine različitih dimenzija. Oni pohranjuju vrijednosti u obliku dva načina kao što su glavni red i glavni stupci. I raspoređivanje memorije potvrđuje svojstva duljine i ranga.

U C, višedimenzionalni niz ima tri vrste:

  1. Dvodimenzionalni niz
  2. Trodimenzionalni niz
  3. Četverodimenzionalni niz

1. Dvodimenzionalni niz

Dvodimenzionalni niz strukturiran je kao matrice i provodi se pomoću redaka i stupaca, poznatih i kao niz matrica. Raspodjela memorije vrši se ili u glavnom redu ili u glavnom stupcu. A zadani format je Row-Major. Kad se uzima dvodimenzionalna matrica, svaki se element smatra 1-D matrijom ili se zna da predstavlja kolekciju 1-D matrice. Dvodimenzionalni niz koristi dvije za petlje ili ugniježđene petlje, gdje se vanjske petlje izvršavaju od 0 do početnog pretpisa.

Sintaksa:

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

Primjer:

int td (4)(3);

ovdje 4 je br. redaka i 3 je br. stupaca.

Inicijalizacija dvodimenzionalnog niza

Inicijalizacija u 2-D polju se vrši na više načina, ovdje je prikazano.

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);

Ovdje smo spomenuli br. redaka i stupaca u okviru Obavezno je dodijeliti drugi indeks da biste razumjeli sastavljač o završetku i početku retka. Donja tablica prikazuje raspodjelu memorije 2-D matrice.

Broj elemenata određuje se manipuliranjem brojem redaka i stupaca i množenjem br. redaka i stupaca. za instancu, br. elemenata niz sadrži B (-2… 4, -3.6). Izračunava se pomoću donje i gornje granice.

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

izvršenje

Izvodi se pomoću Row glavnih i glavnih stupca implementacija

Red-Smjer:
Formula za manipulaciju adresom je dana kao:
= B +W ( n(I-1) +(J-1))
Gdje je b- osnovna adresa i n- Broj stupaca za W bajtove.
Glavni stupac:
= B +W ( r(j-1) +(i-1))
gdje je r - je ne. od redaka.

Primjeri dvodimenzionalnog niza

Primjeri dvodimenzionalnog niza su:

Primjer 1

Svaki element niza A (-10.10, 20… 35) treba 1 bajt memorije. A niz se uklapa u glavni stup stupca na adresu 400, pronađite lokaciju A (0, 30).

Riješenje

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

Poznata operacija izvedena u 2-d matrici je Algebra matrica s m * n Matricom B. Matematički koncept matrice implementiran je isto kao i u programiranju.

Donji primjer pohranjuje element u formatu matrice i ispisuje isti.

Kodirati:

#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;
)

Izlaz:

Primjer 2

C program koji izvodi zbroj dviju matrica.

Kodirati:

#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");
)
)

Gornji program izračunava zbroj dviju matrica A (20, 20) B (20, 20) pod uvjetom da imaju dvije identične matrice. Putem za petlju potrebno je dvije ulazne matrice i petlje za prihvaćanje matrice.

Izlaz:

Primjer 3

Transponiranje matrice

Izmjenjujući redove i stupce radi formiranja nove matrice koja je poznata i kao prenošenje matrice.

Primjer:

Onda Transpose daj,

Prenošenje matrice pomoću C programa

Kodirati:

#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;
)

U gornjem programu Za čitanje matrice koristili smo dvije za petlje, a za ispis njegovog transponiranja ugniježđena petlja koristi se za prikaz rezultata. Ovdje smo koristili 3 * 3 matricu.

Izlaz:

2. Trodimenzionalni niz

Zove se niz elemenata matrice ili niz matrica. To je prilično buzno, ali kad jednom steknete praksu prema logici, koju je lakše implementirati. a ovaj 3-D polje zahtijeva više od tri dimenzije i zahtijeva pohranjivanje veće količine memorije.

Može se proglasiti kao:

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

int L (3) (4) (2); Ovdje niz L može sadržavati 24 elementa. I sve se to može inicijalizirati tijekom postupka kompilacije, ali kad se neinicijalizirano stavi se u vrijednost smeća.

Inicijalizacija se može izvesti na isti način kao dvodimenzionalni niz. Evo uzorka,

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)));

Primjeri trodimenzionalnog niza

Evo nekoliko primjera trodimenzionalnog niza koji su dani u nastavku:

Primjer 1

Slijedi jednostavan primjer programa C koji ilustrira trodimenzionalni niz. Izvodi se pomoću petlje uzimajući u obzir 3 za petlje za 3d elemente.

Kodirati:

#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));
)
)
)
)

Izlaz:

Primjer 2

Još jedan primjer 3-D matrice za automatski ispis elemenata.

Kodirati:

#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;
)

Izlaz:

3. Četverodimenzionalni niz

To je niz trodimenzionalnih nizova i vrlo je teško u upravljanju dimenzijama. Gledano je kao gomila kockica zajedno i primjenjivo za svemirske vektore.

Izjava 4-D matrice:

Upišite naziv niza (1) (2) (3) (4) ……. (n) gdje 1, 2 označava dimenzije, a n podrazumijeva n-e dimenzije.

Primjer:

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

Primjer četverodimenzionalnog niza

C program za implementaciju 4- D matrice.

Kodirati:

#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;
)

Izlaz:

Zaključak

Za kraj, u ovom smo članku raspravljali o višedimenzionalnim nizovima i njihovim podvrstama u C programiranju. A isto tako, njihova deklaracija i pristup elementima u formatu matrice. Te se tehnike primjenjuju u konceptu poput binarnog pretraživanja i implementacije sortiranja. Ovdje indeks igra ključnu ulogu u određivanju elementa u strukturi niza.

Preporučeni članci

Ovo je vodič za višedimenzionalni niz u C. Ovdje smo raspravljali o tome kako inicijalizirati višedimenzionalni niz u C zajedno s primjerima. Možete pogledati i sljedeće članke da biste saznali više -

  1. Najbolji C sastavljači
  2. 2D polja u C #
  3. 2-D nizovi u C
  4. C Klase skladištenja
  5. C Programiranje množenja matrice
  6. 3 različite vrste nizova u PHP-u (primjeri)
  7. Kako Array djeluje u Unixu sa sintaksom?

Kategorija: