logo

Matriz C

Una matriz se define como la colección de elementos de datos de tipo similar almacenados en ubicaciones de memoria contiguas. Las matrices son el tipo de datos derivados en el lenguaje de programación C que puede almacenar el tipo primitivo de datos como int, char, double, float, etc. También tiene la capacidad de almacenar la colección de tipos de datos derivados, como punteros, estructura, etc. La matriz es la estructura de datos más simple donde se puede acceder aleatoriamente a cada elemento de datos utilizando su número de índice.

La matriz C es beneficiosa si tiene que almacenar elementos similares. Por ejemplo, si queremos almacenar las calificaciones de un estudiante en 6 materias, entonces no necesitamos definir diferentes variables para las calificaciones en las diferentes materias. En lugar de eso, podemos definir una matriz que pueda almacenar las marcas de cada tema en ubicaciones de memoria contiguas.

Al usar la matriz, podemos acceder a los elementos fácilmente. Sólo se requieren unas pocas líneas de código para acceder a los elementos de la matriz.

Propiedades de la matriz

La matriz contiene las siguientes propiedades.

  • Cada elemento de una matriz es del mismo tipo de datos y tiene el mismo tamaño, es decir, int = 4 bytes.
  • Los elementos de la matriz se almacenan en ubicaciones de memoria contiguas, donde el primer elemento se almacena en la ubicación de memoria más pequeña.
  • Se puede acceder aleatoriamente a los elementos de la matriz ya que podemos calcular la dirección de cada elemento de la matriz con la dirección base dada y el tamaño del elemento de datos.

Ventaja de la matriz C

1) Optimización del código : Menos código para acceder a los datos.

2) Facilidad de atravesar : Al usar el bucle for, podemos recuperar los elementos de una matriz fácilmente.

3) Facilidad de clasificación : Para ordenar los elementos de la matriz, solo necesitamos unas pocas líneas de código.

4) Acceso aleatorio : Podemos acceder a cualquier elemento de forma aleatoria utilizando el array.

Desventaja de C Array

1) Tamaño fijo : Cualquiera que sea el tamaño que definamos en el momento de la declaración de la matriz, no podemos exceder el límite. Por lo tanto, no aumenta el tamaño dinámicamente como LinkedList, que aprenderemos más adelante.

Declaración de matriz C

Podemos declarar una matriz en lenguaje c de la siguiente manera.

 data_type array_name[array_size]; 

Ahora, veamos el ejemplo para declarar la matriz.

 int marks[5]; 

Aquí, int es el tipo de datos , las marcas son las nombre_matriz , y 5 es el tamaño_matriz .

Inicialización de C Array

La forma más sencilla de inicializar una matriz es utilizar el índice de cada elemento. Podemos inicializar cada elemento de la matriz usando el índice. Considere el siguiente ejemplo.

cadena a carácter java
 marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75; 
inicialización de matriz en lenguaje c

Ejemplo de matriz 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++){>

Matriz C: Declaración con inicialización

Podemos inicializar la matriz c en el momento de la declaración. Veamos el código.

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

En tal caso, hay no es necesario definir el tamaño . Por lo tanto, también se puede escribir como el siguiente código.

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

Veamos el programa C para declarar e inicializar el array 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(&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++){>

Ejemplo de matriz C: ordenar una matriz

En el siguiente programa, utilizamos el método de clasificación por burbujas para ordenar la matriz en orden ascendente.

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