Ir ao conteúdo
  • Cadastre-se

Bug monstro


metal57

Posts recomendados

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();

}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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