Deletando um Elemento de um Array Usando C

CBeginner
Pratique Agora

Introdução

Um array (vetor) é uma coleção de itens de dados semelhantes armazenados em locais de memória contíguos e consiste em elementos. Um elemento pode ser acessado indexando a posição da localização de memória correspondente. Às vezes, torna-se essencial deletar qualquer elemento do array com base em sua posição ou valor. Neste laboratório, aprenderemos como remover um elemento do array com base em sua posição e valor.

Criar um projeto C

Primeiro, precisamos criar um projeto C no editor de código. Crie um novo arquivo "main.c" no diretório ~/project/ e escreva o seguinte código:

#include <stdio.h>

int main()
{
  return 0;
}

Deletar um elemento do Array com base na posição

Nesta etapa, escreveremos um programa em linguagem C que aceita um array (vetor) de inteiros, o tamanho do array e a posição de um elemento a ser deletado. Em seguida, deletaremos o elemento e imprimiremos o array atualizado.

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

Explicação do Código:

  • Criamos um array de inteiros arr[100], que pode armazenar um máximo de 100 elementos.
  • Recebemos como entrada o inteiro n do usuário, que representa o número de elementos no array.
  • O loop for é usado para aceitar a entrada do usuário usando a função scanf no array arr.
  • Recebemos a posição do elemento a ser deletado como entrada do usuário.
  • Verificamos se a posição de entrada do usuário é válida ou não; ela deve estar entre 1 e n.
  • Se a posição for válida, colocamos o elemento à esquerda da posição no lugar do elemento deletado, o que é feito implementando um loop para mover o elemento para seus lugares à esquerda.
  • Finalmente, exibimos o array atualizado usando a instrução printf.

Remover um Elemento de um Array com Base no Valor

Nesta etapa, escreveremos um programa em C para deletar um elemento de um array com base no valor inserido pelo usuário.

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

Explicação do Código:

  • Criamos um array de inteiros arr[10].
  • Armazenamos o número de elementos a serem adicionados da variável de entrada do usuário n.
  • Usamos um loop for para pegar n inteiros um por um pela função scanf no array de inteiros arr.
  • Recebemos a entrada do elemento que queremos deletar do usuário.
  • Percorremos o array usando um loop for de 0 a n-1 e, em seguida, usando uma instrução if, verificamos se o elemento inserido pelo usuário é igual a algum dos elementos do array ou não.
  • Se for igual, declaramos uma variável pos na qual armazenamos o índice desse elemento.
  • Usamos outro loop for para deletar o elemento e deslocar os elementos restantes do array.
  • Finalmente, exibimos o array atualizado usando a instrução printf.

Resumo

Neste laboratório, aprendemos como deletar um elemento de um array por sua posição ou valor em programação C. O programa para deletar um elemento de um array recebe o array, seu tamanho e a posição/valor do elemento a ser deletado como entradas, um loop for é usado para percorrer o array, então a posição ou valor do elemento alvo é encontrado e, em seguida, um loop é usado para deletar o elemento. Isso é feito copiando o elemento presente à direita do elemento a ser deletado para a esquerda até o final do array. Após a deleção, o tamanho do array é reduzido em um.