Ir ao conteúdo
  • Cadastre-se

majingregori

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

1
  1. Gelera to com duas duvidas nessa agenda em C utilizando lista simples encadeada, • A função (void visualizarLista) quando pesquisa pelo nome, so esta encontrando o último nome cadastrado, os anteriores não, o que pode estar errado? • Preciso implementar a EXCLUSÃO e INCLUSÃO de nó em QUALQUER PARTE DA LISTA. o código esta anexado. desde já agradeço <code> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> struct stNo { int info; char nome[50]; char endereco[50]; char telefone[10]; char email[30]; char sexo; struct stNo *prox; }; struct stNo *cria_no() { struct stNo *p; if ((p = (struct stNo *) malloc(sizeof(struct stNo))) == NULL) return NULL; else { p->prox = NULL; return p; } } void insereLista(struct stNo **list){ struct stNo *p,*q; int n; char name[50]; char end[50]; char tel[9]; char mail[30]; char sex; fflush(stdin); printf("\nDigite o valor do nó: "); scanf("%i",&n); fflush(stdin); printf("\nDigite o nome: "); gets(name); fflush(stdin); printf("\nDigite o endereço: "); gets(end); fflush(stdin); printf("\nDigite o telefone: "); gets(tel); fflush(stdin); printf("\nDigite o Email: "); gets(mail); fflush(stdin); printf("\nDigite o sexo [M/F]: "); scanf("%c",&sex); if(*list==NULL){ //lista vazia p = cria_no(); *list = p; p->prox = NULL; p->info = n; strcpy(p->nome,name); strcpy(p->endereco,end); strcpy(p->telefone,tel); strcpy(p->email,mail); p->sexo = sex; } else{ p=*list; while(p->prox!=NULL) p=p->prox;// posiciona no final da lista q = cria_no(); p->prox = q; q->prox = NULL; q->info = n; strcpy(q->nome,name); strcpy(q->endereco,end); strcpy(q->telefone,tel); strcpy(q->email,mail); q->sexo = sex; }; }; void mostraLista(struct stNo **list){ struct stNo *p; if(*list!=NULL){ p=*list; while(p->prox!=NULL){ printf(" %d->",p->info); p = p->prox; }; printf(" %d->",p->info); } else printf("\nLista Vazia"); }; void visualizarLista(struct stNo **list){ struct stNo *p; char n; char pesq[20]; fflush (stdin); printf("\nDigite o nome: ");//procurar pelo nome gets(pesq); //scanf("%d",&n); if(*list!=NULL){ p=*list; while(p->prox!=NULL&&p->info!=n){ p = p->prox; }; if(strcmp(p->nome, pesq) == 0){ printf("\nCódigo: %d",p->info); printf("\nNome: %s",p->nome); printf("\nEndereço: %s",p->endereco); printf("\nTelefone: %s",p->telefone); printf("\nEmail: %s",p->email); printf("\nSexo: %c",p->sexo); }; } else printf("\nLista Vazia"); }; main(){ setlocale(LC_ALL,"Portuguese"); struct stNo *lista; int menu; lista = NULL; // inicializando a lista vazia do{ system("cls"); printf("\n"); mostraLista(&lista); printf("\n\n"); printf("[1-Inserir] "); printf("[2-Visualizar] "); printf("[3-Sair] "); printf("Opção:"); scanf("%i",&menu); switch(menu){ case 1 : insereLista(&lista); break; case 2 : visualizarLista(&lista); break; case 3 : printf("\nSaindo..."); break; default: printf("\nCódigo Inválido"); } printf("\n");system("pause"); }while(menu!=3); } <code> agenda C .txt

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!