Boa noite, alguém pode me ajudar a colocar a opção excluir nesse código, tem que procurar pelo nome da pessoa e fazer a exclusão, segue o que eu conseguir fazer até agora. Eu até coloquei a opção excluir ali mas não ta funcionando.
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<locale.h>struct stNo {int info, idade, celular;char nome[100],endereco[100], sexo, cidade[80], email[40];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, idade, celular;char name[100], endereco[100], sexo, cidade[80], email[40];
fflush(stdin);
printf("\nDigite o valor do nó:");
scanf("%i",&n);
fflush(stdin);
printf("\nDigite o nome:");
gets(name);
fflush(stdin);//printf("\nDigite o seu sexo [F][M]:");//scanf("%c",&sexo);//fflush(stdin);//printf("\nDigite sua idade:");//scanf("%i",&idade);//fflush(stdin);//printf("\nDigite seu endereço:");//gets(endereco);//fflush(stdin);//printf("\nDigite sua cidade:");//gets(cidade);//fflush(stdin);//printf("\nDigite seu celular:");//scanf("%i",&celular);//fflush(stdin);//printf("\nDigite seu e-mail:");//gets(email);//fflush(stdin);if(*list==NULL){//lista vazia
p = cria_no();*list = p;
p->prox = NULL;
p->info = n;
strcpy(p->nome,name);
p->sexo=sexo;
p->idade=idade;
strcpy(p->endereco,endereco);
strcpy(p->cidade,cidade);
p->celular=celular;
strcpy(p->email,email);}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);*list = q;};};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 excluirLista(struct stNo **list){struct stNo *p,*q;int n;char name[100];if(*list!=NULL){//lista vazia
p =*list;while(p->prox!=NULL && strcmp(p->nome, name)!=0){
p = p->prox;};if(strcmp(p->nome, name)==0){
printf("\nCódigo: %d",p->info);
printf("\nNome: %s",p->nome);if(p->prox==NULL){
free(p);*list =NULL;}else{while(p->prox!=NULL){
q=p;
p=p->prox;}
q->prox=NULL;
free(p);else{
q=p->prox;
free(p);*list=q;}else{
q->prox=NULL;
free(p);}}else{
printf("\nLista Vazia");}};void visualizarLista(struct stNo **list){struct stNo *p;int n;char name[100];
fflush(stdin);
printf("\nDigite o nome:");
gets(name);
fflush(stdin);if(*list!=NULL){
p =*list;while(p->prox!=NULL && strcmp(p->nome, name)!=0){
p = p->prox;};if(strcmp(p->nome, name)==0){
printf("\nCódigo: %d",p->info);
printf("\nNome: %s",p->nome);//printf("\nSexo: %c",p->sexo);//printf("\nIdade: %d",p->idade);//printf("\nEndereço: %s",p->endereco);//printf("\nCidade: %s",p->cidade);//printf("\nCelular: %i",p->celular);//printf("\nE-mail: %s",p->email);};}else printf("\nLista Vazia");};
main(){
setlocale(LC_ALL,"Portuguese");struct stNo *lista;int menu;
lista = NULL;// inicializando a lista vaziado{
system("cls");
printf("\n");
mostraLista(&lista);
printf("\n\n");
printf("[1-Inserir] ");
printf("[2-Visualizar] ");
printf("[3-Excluir] ");
printf("[4-Sair] ");
printf("Opção:");
scanf("%i",&menu);switch(menu){case1: insereLista(&lista);break;case2: visualizarLista(&lista);break;case3: excluirLista(&lista);break;case4: printf("\nSaindo...");break;default: printf("\nCódigo Inválido");}
printf("\n");system("pause");}while(menu!=3);}
Pergunta
Robson Nunes
Boa noite, alguém pode me ajudar a colocar a opção excluir nesse código, tem que procurar pelo nome da pessoa e fazer a exclusão, segue o que eu conseguir fazer até agora. Eu até coloquei a opção excluir ali mas não ta funcionando.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.