Eliminando un Elemento de un Array Utilizando C

CBeginner
Practicar Ahora

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 n del 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 pos en 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.