Introducción
Una matriz es una colección de elementos de datos similares almacenados en ubicaciones de memoria contiguas y consta de elementos. Un elemento se puede acceder mediante la indexación de la posición de la ubicación de memoria correspondiente. A veces es esencial eliminar cualquiera de los elementos de la matriz en función de su posición o valor. En este laboratorio, aprenderemos cómo eliminar un elemento de la matriz en función de su posición y valor.
Crear un proyecto de C
Primero, necesitamos crear un proyecto de C en el editor de código. Crea un nuevo archivo "main.c" en el directorio ~/proyecto/ y escribe el siguiente código:
#include <stdio.h>
int main()
{
return 0;
}
Eliminar un elemento de un Array basado en la posición
En este paso, escribiremos un programa en el lenguaje C que acepte una matriz de enteros, el tamaño de la matriz y una posición de un elemento a eliminar. Luego, eliminaremos el elemento e imprimiremos la matriz actualizada.
#include <stdio.h>
int main()
{
int arr[100], position, c, n;
printf("Enter the number of elements in array: ");
scanf("%d", &n);
printf("Enter %d elements:\n", n);
for(c = 0; c < n; c++)
scanf("%d", &arr[c]);
printf("Enter the location of the element to delete: ");
scanf("%d", &position);
if (position >= n + 1)
printf("Deletion not possible.\n");
else
for (c = position - 1; c < n - 1; c++)
arr[c] = arr[c+1];
printf("The updated array is: ");
for(c = 0; c < n-1; c++)
printf("%d ", arr[c]);
return 0;
}
Explicación del código:
- Creamos una matriz de enteros
arr[100], que puede almacenar un máximo de 100 elementos. - Tomamos la entrada entera
ndel usuario, que representa el número de elementos en la matriz. - El bucle for se utiliza para aceptar la entrada del usuario utilizando la función scanf en la matriz
arr. - Tomamos la posición del elemento a eliminar como entrada del usuario.
- Comprobamos si la posición de entrada del usuario es válida o no; debe estar entre 1 y n.
- Si la posición es válida, colocamos el elemento a la izquierda de la posición en el lugar del elemento eliminado, lo que se logra implementando un bucle para mover el elemento a sus lugares a la izquierda.
- Finalmente, imprimimos la matriz actualizada utilizando la declaración printf.
Eliminar un Elemento de un Array Basado en el Valor
En este paso, escribiremos un programa en C para eliminar un elemento de un array basado en el valor ingresado por el usuario.
#include<stdio.h>
int main()
{
int arr[10], element, c, n, pos, found=0;
printf("Enter the number of elements in array: ");
scanf("%d", &n);
printf("Enter %d elements:\n", n);
for (c = 0; c < n; c++)
scanf("%d", &arr[c]);
printf("Enter the element to delete: ");
scanf("%d", &element);
for (c = 0; c < n; c++)
{
if (arr[c] == element)
{
found = 1;
pos = c;
break;
}
}
if (found == 1)
{
for (c = pos; c < n - 1; c++)
arr[c] = arr[c+1];
printf("The updated array is: ");
for (c = 0; c < n - 1; c++)
printf("%d ", arr[c]);
}
else
printf("Element not found in array.");
return 0;
}
Explicación del código:
- Creamos un array de enteros arr[10].
- Almacenamos el número de elementos a agregar a partir de la variable de entrada del usuario
n. - Utilizamos un bucle for para tomar n enteros uno por uno mediante la función scanf en el array de enteros arr.
- Tomamos la entrada del elemento que queremos eliminar del usuario.
- Recorremos el array utilizando un bucle for desde 0 hasta n-1 y luego, mediante una declaración if, comprobamos si el elemento ingresado por el usuario es igual a cualquiera de los elementos del array o no.
- Si es igual, entonces declaramos una variable
posen la que almacenamos el índice de ese elemento. - Utilizamos otro bucle for para eliminar el elemento y desplazar los elementos restantes del array.
- Finalmente, imprimimos el array actualizado utilizando la declaración printf.
Resumen
En este laboratorio, hemos aprendido cómo eliminar un elemento de una matriz por su posición o valor en el programa de programación C. El programa para eliminar un elemento de una matriz toma la matriz, su tamaño y la posición/valor del elemento a eliminar como entradas, se utiliza un bucle for para recorrer la matriz, luego se encuentra la posición o valor del elemento objetivo y luego se utiliza un bucle para eliminar el elemento. Esto se logra copiando el elemento presente a la derecha del elemento a eliminar hacia la izquierda hasta el final de la matriz. Después de la eliminación, el tamaño de la matriz se reduce en uno.



