• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Gravecard

Vectores....

5 mensagens neste tópico

Bem tenho um vector de 50 posições preenchido com um determinado tipo de dados lá dentro, imaginem que sejam inteiros. O utilizador introduz um número que é procurado no vector, se for encontrado, o número é eliminado, ficando essa posição livre para receber outro número. Qual é a maneira mais eficaz de resolver esta situação, do apagar, mais propriamente.

Cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é possível fazer com um array de inteiros.

Se houver algum inteiro que nunca possa ser usado nesse array (por exemplo: -1) podes usar esse valor para sinalizar que essa posição está livre.

Outra solução é usares uma estrutura para o array: um membro da estrutura é o inteiro, outro membro é outro inteiro para sinalizar se essa posição está ocupada ou não.

Ainda outra solução é usares memória dinâmica, fazendo um array de 50 pointers. Para cada posição do array de pointer fazes um malloc e poes lá o interio. Quando o utilizador apagar um número, fazes o free dessa memória e metes o pointer a NULL.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aqui está:

#include <stdio.h>

main()
{
      int x[50], i, y;
      
      for(i=0; i<50; i++)
               x[i] = i;/*Inicializa o vector, por acaso fiz desta maneira mas podias inicializar de uma outra maneira
               ou até mesmo não inicializar*/
               
      scanf("%d", &y);//Lê o valor que queres eliminar do vector
      
      for(i=0; i<50; i++)/*Vai á procura do valor e substitui por 0, não é póssivel apagar valore do vector de inteiros,
      ele tem de ter sempre alguma coisa*/
      {
               if(x[i] == y)
                       x[i] = 0;
      }
}

Parece-me que é isto que queres.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Dar o código completo é uma péssima maneira de ajudar. Dar pequenas ajudas de maneira a obrigar a ver onde cada peça encaixa é muito mais eficaz.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem obrigado, a quem respondeu...mas por acaso até fiz de uma maneira diferente ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora