Ir ao conteúdo
  • Cadastre-se
metal57

Bug monstro

Recommended Posts

Boa tarde senhores.

Estou fazendo um programa para a minha universidade e o mesmo necessita de uma função de remoção.

A mesma funciona bem exceto pelo fato de não conseguir remover o 1° elemento já fiz tratamento etc e o mesmo não funciona como já viciei na lógica e no código não conseguindo averiguar o que pode estar dando de errado,peço que quem puder me ajudar a tentar detectar este erro ficarei grato.A váriavel nodeptr lista é um ponteiro já declarado anteriormente.

void Remove_id(Nodeptr lista)

{

int achou=0,cont=0;

Nodeptr tmp= lista;

Nodeptr juntou,aux;

char chave[MAX];

clean_stdin(stdin);

printf("Digite o ID a ser buscado:");

gets(chave);

printf("\n");

//Correndo a lista e verificando se encontrou

//a string buscada, se sim, aumenta o

//contador e seta a variável de busca

while (tmp != NULL)

{

if (strcmp(chave, tmp->info.id) == 0)

{

achou=1;

cont++;

}

tmp = tmp->link;

}

//Se encontrou a busca

if(achou==1)

{

int ind=0;

//Correndo a lista

for(ind=0;ind<cont;ind++)

{

//Se encontrou na primeira casa

//apaga a primeira casa

if(strcmp(chave,lista->info.id)==0)

{

aux=lista;

lista=aux->link;

free(aux);

}

//Senão, procura até encontrar

else

{

aux=lista;

//Posiciona na frente do encontro

//para exclusão

while(strcmp(chave,aux->info.id)!=0)

{

aux=aux->link;

}

juntou=lista;

//Enquanto o auxiliar juntou for

//diferente do posicionado para

//exclusão

while(juntou != NULL && juntou->link!=aux)

{

juntou=juntou->link;

}

//Aponta para o próximo valor válido

if (juntou != NULL) juntou->link=aux->link;

free(aux);

}

}

printf( "Excluido.\n");

}

else

printf( "Nenhum resultado encontrado.\n");

getchar();

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×