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
ndo 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
posna 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.



