Una matriu es defineix com la col·lecció d'elements de dades similars emmagatzemats en ubicacions de memòria contigües. Les matrius són el tipus de dades derivades en llenguatge de programació C que poden emmagatzemar el tipus primitiu de dades com int, char, double, float, etc. També té la capacitat d'emmagatzemar la col·lecció de tipus de dades derivades, com ara punters, estructura, etc. etc. La matriu és l'estructura de dades més senzilla on es pot accedir a cada element de dades de manera aleatòria utilitzant el seu número d'índex.
La matriu C és beneficiosa si heu d'emmagatzemar elements similars. Per exemple, si volem emmagatzemar les notes d'un estudiant en 6 assignatures, no cal definir diferents variables per a les notes de les diferents assignatures. En lloc d'això, podem definir una matriu que pugui emmagatzemar les marques de cada subjecte a les ubicacions de memòria contigües.
Mitjançant l'ús de la matriu, podem accedir als elements fàcilment. Només calen unes poques línies de codi per accedir als elements de la matriu.
Propietats de Array
La matriu conté les propietats següents.
- Cada element d'una matriu és del mateix tipus de dades i té la mateixa mida, és a dir, int = 4 bytes.
- Els elements de la matriu s'emmagatzemen en ubicacions de memòria contigües on el primer element s'emmagatzema a la ubicació de memòria més petita.
- Es pot accedir a l'atzar als elements de la matriu, ja que podem calcular l'adreça de cada element de la matriu amb l'adreça base donada i la mida de l'element de dades.
Avantatge de C Array
1) Optimització del codi : Menys codi per accedir a les dades.
2) Facilitat de travessia : Utilitzant el bucle for, podem recuperar fàcilment els elements d'una matriu.
3) Facilitat de classificació : Per ordenar els elements de la matriu, només necessitem unes poques línies de codi.
4) Accés aleatori : Podem accedir a qualsevol element de manera aleatòria mitjançant la matriu.
Desavantatge de C Array
1) Mida fixa : Sigui quina sigui la mida, definim en el moment de la declaració de la matriu, no podem superar el límit. Per tant, no augmenta la mida de manera dinàmica com LinkedList que aprendrem més endavant.
Declaració de C Array
Podem declarar una matriu en el llenguatge c de la següent manera.
data_type array_name[array_size];
Ara, vegem l'exemple per declarar la matriu.
int marks[5];
Aquí, int és el tipus_dada , les marques són nom_matriu , i 5 és el mida_matriu .
Inicialització de C Array
La manera més senzilla d'iniciar una matriu és utilitzant l'índex de cada element. Podem inicialitzar cada element de la matriu utilitzant l'índex. Considereu l'exemple següent.
css per negreta
marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75;
Exemple de matriu 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'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'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('Enter the size of the array?'); scanf('%d',&n); printf('Enter the elements of the array?'); 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 && arr[i]!=largest) { sec_largest=arr[i]; } } printf('largest = %d, second largest = %d',largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){></pre></5;i++){>
C Array: Declaració amb inicialització
Podem inicialitzar la matriu c en el moment de la declaració. Vegem el codi.
int marks[5]={20,30,40,50,60};
En aquest cas, n'hi ha cap requisit per definir la mida . Per tant, també es pot escriure com el següent codi.
int marks[]={20,30,40,50,60};
Vegem el programa C per declarar i inicialitzar la matriu en 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('Enter the size of the array?'); scanf('%d',&n); printf('Enter the elements of the array?'); 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 && arr[i]!=largest) { sec_largest=arr[i]; } } printf('largest = %d, second largest = %d',largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){>
C Exemple de matriu: ordenació d'una matriu
Al programa següent, estem utilitzant el mètode d'ordenació de bombolles per ordenar la matriu en ordre ascendent.
#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('Enter the size of the array?'); scanf('%d',&n); printf('Enter the elements of the array?'); 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 && arr[i]!=largest) { sec_largest=arr[i]; } } printf('largest = %d, second largest = %d',largest,sec_largest); } </n;></pre> <hr></10;>
10;>5;i++){>5;i++){>