Ir ao conteúdo

Posts recomendados

Postado

Preciso que o usuário informe a posição do vetor que ele deseja remover, remover o número da respectiva posição e printar o vetor a cada remoção. Como faço isso ?

Segue código abaixo:

#include <stdio.h>
#include <stdlib.h>

int main () {

int vetor[10]= {2,4,6,8,10,12,14,16,18,20},valor, i,controle=0,posicao;
int op;


// Menu // 
printf ("\n Informe a operacao que deseja realizar: ");
printf ("\n 1- para Buscar");
printf ("\n 2- para Remover Elementos \n");
scanf ("%i", &op);

switch (op) {
	// BUSCAR //
	case 1:
        do {
        	printf ("\n Informe um valor:");
        	scanf ("%i", &valor);
        	// comparação //
        	for (i=0;i<11;i++) {
			   if (valor == vet[i]){
			    controle = 1;
			   	printf ("\n Parabens, o valor %i foi encontrado na posicao %i !", valor, i);
			   }
			   else {
			   	if (controle==0 && i==10) {
				
			   	printf ("\n O valor nao foi encontrado. Tente novamente!");
			   	printf ("\n Pressione 1 para tentar novamente ou 2 para sair");
			   	scanf ("%i", &op);
			   }
			   }
			}        	
		} while (op == 1 && controle==0);
	break;
	case 2:
		printf ("\n Informe a posicao do vetor que deseja remover:");
		scanf ("%i",&posicao);
		
		for (i=0;i<11;i++) {
			if (i==posicao) {
				
		}
	
		
	
	
		
	
	  break;
	default:
		printf ("\n Operacao invalida!");
	   	
}

	
}

 

  • Curtir 1
Postado
17 minutos atrás, elyastrid disse:

Preciso que o usuário informe a posição do vetor que ele deseja remover, remover o número da respectiva posição e printar o vetor a cada remoção. Como faço isso ?

Segue código abaixo:


#include <stdio.h>
#include <stdlib.h>

int main () {

int vetor[10]= {2,4,6,8,10,12,14,16,18,20},valor, i,controle=0,posicao;
int op;


// Menu // 
printf ("\n Informe a operacao que deseja realizar: ");
printf ("\n 1- para Buscar");
printf ("\n 2- para Remover Elementos \n");
scanf ("%i", &op);

switch (op) {
	// BUSCAR //
	case 1:
        do {
        	printf ("\n Informe um valor:");
        	scanf ("%i", &valor);
        	// comparação //
        	for (i=0;i<11;i++) {
			   if (valor == vet[i]){
			    controle = 1;
			   	printf ("\n Parabens, o valor %i foi encontrado na posicao %i !", valor, i);
			   }
			   else {
			   	if (controle==0 && i==10) {
				
			   	printf ("\n O valor nao foi encontrado. Tente novamente!");
			   	printf ("\n Pressione 1 para tentar novamente ou 2 para sair");
			   	scanf ("%i", &op);
			   }
			   }
			}        	
		} while (op == 1 && controle==0);
	break;
	case 2:
		printf ("\n Informe a posicao do vetor que deseja remover:");
		scanf ("%i",&posicao);
		
		for (i=0;i<11;i++) {
			if (i==posicao) {
				
		}
	
		
	
	
		
	
	  break;
	default:
		printf ("\n Operacao invalida!");
	   	
}

	
}

 

 

vetor = NULL;

 

Postado
//for (i=0;i<11;i++) {
for (i=0;i<10;i++) {//ate 10, sao 10 elementos no vetor!
			   if (valor == vet[i]){

Para remover um elemento do vetor você desloca todos os outros para a esquerda. Ex.:

23 21 17 01 19 11 12 45 99 07 // Vou remover o elemento 11, o sexto na ordem da esquerda pra direita.

23 21 17 01 19 12 45 99 07 07 //desloquei os demais uma posicao para a esquerda.

O ultimo elemento você ignora, ou seja, você irá tratar o seu vetor como se tivesse agora tamanho 9.

  • Curtir 1
Postado

Tenta desse jeito:

#include <stdio.h>
#include <stdlib.h>

/**
 * Controla a posição que deve ser inserido o novo valor,
 * além de servir como delimitador na hora da iteração.
 */
int ponteiroInsercao = 0;

void adicionar(int vetor[], int valor) {
    vetor[ponteiroInsercao] = valor;
    ponteiroInsercao += 1;
}

void remover(int vetor[], int posicao) {
    if (posicao < 0 || posicao >= ponteiroInsercao) {
        printf("Posição inválida para remover: %i \n", posicao);
        return;
    }

    for (int i = posicao; i < ponteiroInsercao; ++i) {
        vetor[i] = vetor[i + 1];
    }

    ponteiroInsercao -= 1;
}

int main() {
    int vetor[10];

    adicionar(vetor, 0);
    adicionar(vetor, 1);
    adicionar(vetor, 2);
    adicionar(vetor, 3);
    adicionar(vetor, 4);
    adicionar(vetor, 5);
    adicionar(vetor, 6);
    adicionar(vetor, 7);
    adicionar(vetor, 8);
    adicionar(vetor, 9);

    remover(vetor, 0);

    for (int i = 0; i < ponteiroInsercao; ++i) {
        printf("| %i ", vetor[i]);
    }
  
    return 0;
}

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...