logo

C Array

O matrice este definită ca o colecție de elemente de date similare stocate în locații de memorie adiacente. Matricele sunt tipul de date derivate în limbajul de programare C care poate stoca tipul primitiv de date, cum ar fi int, char, double, float etc. De asemenea, are capacitatea de a stoca colecția de tipuri de date derivate, cum ar fi pointeri, structură, etc. Matricea este cea mai simplă structură de date în care fiecare element de date poate fi accesat aleatoriu folosind numărul său de index.

Matricea C este benefică dacă trebuie să stocați elemente similare. De exemplu, dacă dorim să stocăm notele unui student la 6 materii, atunci nu trebuie să definim diferite variabile pentru notele la diferitele materii. În loc de asta, putem defini o matrice care poate stoca mărcile în fiecare subiect în locațiile de memorie adiacente.

Utilizând matricea, putem accesa cu ușurință elementele. Sunt necesare doar câteva linii de cod pentru a accesa elementele matricei.

Proprietățile Array

Matricea conține următoarele proprietăți.

  • Fiecare element al unei matrice este de același tip de date și poartă aceeași dimensiune, adică int = 4 octeți.
  • Elementele matricei sunt stocate în locații de memorie contigue, unde primul element este stocat în locația cea mai mică de memorie.
  • Elementele matricei pot fi accesate aleatoriu, deoarece putem calcula adresa fiecărui element al matricei cu adresa de bază dată și dimensiunea elementului de date.

Avantajul C Array

1) Optimizarea codului : Mai puțin cod pentru accesarea datelor.

2) Ușurință de parcurgere : Folosind bucla for, putem prelua cu ușurință elementele unui tablou.

3) Ușurință de sortare : Pentru a sorta elementele matricei, avem nevoie doar de câteva linii de cod.

4) Acces aleatoriu : Putem accesa orice element aleatoriu folosind matricea.

Dezavantajul C Array

1) Dimensiune fixă : Indiferent de dimensiunea pe care o definim la momentul declararii matricei, nu putem depasi limita. Deci, nu crește dinamic dimensiunea ca LinkedList pe care o vom afla mai târziu.

Declarația C Array

Putem declara o matrice în limbajul c în felul următor.

 data_type array_name[array_size]; 

Acum, să vedem exemplul de declarare a matricei.

 int marks[5]; 

Aici, int este tip_date , semnele sunt nume_matrice , iar 5 este array_size .

Inițializarea matricei C

Cea mai simplă modalitate de a inițializa o matrice este utilizarea indexului fiecărui element. Putem inițializa fiecare element al matricei folosind indexul. Luați în considerare următorul exemplu.

harta vs set
 marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75; 
inițializarea matricei în limbajul c

Exemplu de matrice C

 #include int main(){ int i=0; int marks[5];//declaration of array marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75; //traversal of array for(i=0;i<5;i++){ printf('%d 
',marks[i]); } end of for loop return 0; < pre> <p> <strong>Output</strong> </p> <pre> 80 60 70 85 75 </pre> <h2>C Array: Declaration with Initialization</h2> <p>We can initialize the c array at the time of declaration. Let&apos;s see the code.</p> <pre> int marks[5]={20,30,40,50,60}; </pre> <p>In such case, there is <strong>no requirement to define the size</strong> . So it may also be written as the following code.</p> <pre> int marks[]={20,30,40,50,60}; </pre> <p>Let&apos;s see the C program to declare and initialize the array in C.</p> <pre> #include int main(){ int i=0; int marks[5]={20,30,40,50,60};//declaration and initialization of array //traversal of array for(i=0;i<5;i++){ printf('%d 
',marks[i]); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 20 30 40 50 60 </pre> <h2>C Array Example: Sorting an array</h2> <p>In the following program, we are using bubble sort method to sort the array in ascending order.</p> <pre> #include void main () { int i, j,temp; int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23}; for(i = 0; i<10; i++) { for(j="i+1;" j a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" } printf('printing sorted element list ...
'); for(i="0;" i<10; printf('%d
',a[i]); < pre> <h2>Program to print the largest and second largest element of the array.</h2> <pre> #include void main () { int arr[100],i,n,largest,sec_largest; printf(&apos;Enter the size of the array?&apos;); scanf(&apos;%d&apos;,&amp;n); printf(&apos;Enter the elements of the array?&apos;); for(i = 0; i<n; i++) { scanf('%d',&arr[i]); } largest="arr[0];" sec_largest="arr[1];" for(i="0;ilargest)" else if (arr[i]>sec_largest &amp;&amp; arr[i]!=largest) { sec_largest=arr[i]; } } printf(&apos;largest = %d, second largest = %d&apos;,largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){></pre></5;i++){>

C Array: Declarație cu inițializare

Putem inițializa matricea c în momentul declarării. Să vedem codul.

 int marks[5]={20,30,40,50,60}; 

În acest caz, există nu este necesară definirea dimensiunii . Deci, poate fi scris și ca următorul cod.

 int marks[]={20,30,40,50,60}; 

Să vedem programul C pentru a declara și inițializa matricea în C.

 #include int main(){ int i=0; int marks[5]={20,30,40,50,60};//declaration and initialization of array //traversal of array for(i=0;i<5;i++){ printf(\'%d 
\',marks[i]); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 20 30 40 50 60 </pre> <h2>C Array Example: Sorting an array</h2> <p>In the following program, we are using bubble sort method to sort the array in ascending order.</p> <pre> #include void main () { int i, j,temp; int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23}; for(i = 0; i<10; i++) { for(j="i+1;" j a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" } printf(\'printing sorted element list ...
\'); for(i="0;" i<10; printf(\'%d
\',a[i]); < pre> <h2>Program to print the largest and second largest element of the array.</h2> <pre> #include void main () { int arr[100],i,n,largest,sec_largest; printf(&apos;Enter the size of the array?&apos;); scanf(&apos;%d&apos;,&amp;n); printf(&apos;Enter the elements of the array?&apos;); for(i = 0; i<n; i++) { scanf(\'%d\',&arr[i]); } largest="arr[0];" sec_largest="arr[1];" for(i="0;ilargest)" else if (arr[i]>sec_largest &amp;&amp; arr[i]!=largest) { sec_largest=arr[i]; } } printf(&apos;largest = %d, second largest = %d&apos;,largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){>

C Array Exemplu: Sortarea unei matrice

În următorul program, folosim metoda de sortare cu bule pentru a sorta matricea în ordine crescătoare.

 #include void main () { int i, j,temp; int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23}; for(i = 0; i<10; i++) { for(j="i+1;" j a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" } printf(\'printing sorted element list ...
\'); for(i="0;" i<10; printf(\'%d
\',a[i]); < pre> <h2>Program to print the largest and second largest element of the array.</h2> <pre> #include void main () { int arr[100],i,n,largest,sec_largest; printf(&apos;Enter the size of the array?&apos;); scanf(&apos;%d&apos;,&amp;n); printf(&apos;Enter the elements of the array?&apos;); for(i = 0; i<n; i++) { scanf(\'%d\',&arr[i]); } largest="arr[0];" sec_largest="arr[1];" for(i="0;ilargest)" else if (arr[i]>sec_largest &amp;&amp; arr[i]!=largest) { sec_largest=arr[i]; } } printf(&apos;largest = %d, second largest = %d&apos;,largest,sec_largest); } </n;></pre> <hr></10;>