Ir para conteúdo
Fórum Script Brasil

Rondinelly

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que Rondinelly postou

  1. Boa tarde, galera! Sou novo aqui no fórum e preciso de uma ajuda de vocês... tenho um código de um programa em c que insiste em dar erro ao remover e ao inserir elementos. O que acontece... Para inserir, ele insere um elemento e, ao invés de voltar no menu para o usuário escolher outra opção, ele insere um elemento e volta na tela de inserção automaticamente. E para remover, ele não remove o primeiro elemento da lista, e quando remove, vamos procurar o elemento removido para verficar se realmente ele foi, e acaba que ele não foi removido nada... Por favor, me ajudem... Vou postar o código... Me desculpem se quebrei alguma regra do fórum, mas espero q fique fera como vocês em algum dia... Obrigado! #include<stdio.h> #include<conio.h> #include<string.h> #include<stdlib.h> #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 struct ListaEncadeadaOrdenada { char nome[50], sexo[10]; int cpf; struct ListaEncadeadaOrdenada *elo; }; typedef ListaEncadeadaOrdenada defLista; int insere(); void remove(); void encontra(); defLista *Lista; defLista *Primeiro; int main() { char opcao; int resultado; int contador=0; while (opcao!=4) { system("cls"); printf(" ------------------------------------------------------\n"); printf("\t L I S T A E N C A D E A D A O R D E N A D A\n"); printf(" ------------------------------------------------------\n"); printf("\t\t\t 1 - INSERIR;\n"); printf("\n"); printf("\t\t\t 2 - REMOVE;\n"); printf("\n"); printf("\t\t\t 3 - PROCURAR POR NOME;\n"); printf("\n"); printf("\t\t\t 4 - SAIR.\n"); printf("\n\t\t\t OPCAO: "); scanf("%d",&opcao); fflush(stdin); switch(opcao) { case 1: system("cls"); printf("\t\t ********************************************\n"); printf("\t\t * 1 - INSERCAO *\n"); printf("\t\t ********************************************\n"); resultado=insere(); if (resultado==TRUE) { printf("\nINSERIDO COM SUCESSO NA LISTA !"); contador++; } printf("\n\n << PRESSIONE QUALQUER TECLA PARA CONTINUAR >>"); getch(); break; case 2: system("cls"); printf("\t\t **************************\n"); printf("\t\t * 2 - REMOVER *\n"); printf("\t\t **************************\n"); remove(); printf("\n\n << PRESSIONE QUALQUER TECLA PARA CONTINUAR >>"); getch(); break; case 3: system("cls"); printf("\t\t ************************************\n"); printf("\t\t * 3 - PROCURAR POR NOME *\n"); printf("\t\t ************************************\n"); encontra(); printf("\n\n << PRESSIONE QUALQUER TECLA PARA CONTINUAR >>"); getch(); break; case 4 :exit(1); } } } int insere() { defLista *Aux; defLista *PercorreLista; char nome[50], sexo[10]; int cpf; printf("Nome: "); gets(nome); printf("\nSexo: "); gets(sexo); printf("\nCPF: "); scanf("%d", &cpf); Aux=(defLista *)malloc(sizeof(defLista)); if (Aux==NULL) { return(0); } else { strcpy(Aux->nome,nome); strcpy(Aux->sexo,sexo); Aux->cpf=cpf; Aux->elo = NULL; if( Lista!=NULL) { if (Primeiro!=NULL) { Aux->elo = Primeiro; Lista=Aux; PercorreLista=Primeiro; if (stricmp(Lista->nome, Primeiro->nome) > 0) { Aux=Primeiro; PercorreLista = Primeiro->elo; while ((PercorreLista!=NULL) && (((stricmp(Lista->nome,PercorreLista->nome)) > 0))) { Aux=PercorreLista; PercorreLista = PercorreLista->elo; } Lista->elo = PercorreLista; Aux->elo = Lista; } else { Primeiro=Lista; } } else { if (stricmp(Aux->nome, Lista->nome) > 0) { Lista->elo = Aux; Primeiro=Lista; Lista=Aux; } if (stricmp(Aux->nome, Lista->nome) < 0) { Aux->elo = Lista; Lista=Aux; Primeiro=Lista; } } } else { Lista=Aux; } } return(1); } void remove() { defLista *Aux, *ant, *a; bool num=false; char procurado[50]; if (Lista == NULL) { printf("Erro. Lista Vazia!"); } else { printf("\nDigite o nome que deseja remover da lista:\n"); gets(procurado); system("cls"); if (Primeiro == NULL) { Aux=Lista; if(strcmp(procurado, Aux->nome)==0) { Aux=NULL; Lista=NULL; num=true; } else { printf("Erro. Esse nome não existe na lista!\n"); } } else { Lista=Primeiro; Aux=Lista; ant=Lista; while (num!=true) { if(stricmp(procurado, Aux->nome)==0) { ant->elo=Aux->elo; Aux=NULL; num=true; } else { ant=Aux; Aux = Aux->elo; } } } if (num==false) { printf("Erro. Esse nome não existe na lista!\n"); } else { printf("Removido com sucesso da lista!\n"); } } } void encontra() { defLista *Aux, *x; bool num=false; char procurado[50]; if (Lista == NULL) { printf("Erro. Lista Vazia!"); } else { printf("\nDigite o nome que deseja encontrar na lista:\n"); gets(procurado); system("cls"); if (Primeiro == NULL) { Aux=Lista; if(strcmp(procurado, Aux->nome)==0) { printf("Nome: %s\n", Aux->nome); printf("Sexo: %s\n", Aux->sexo); printf("CPF: %d\n", Aux->cpf); } else { printf("Erro. Esse nome não existe na lista!\n"); } } else { Lista=Primeiro; Aux=Lista; while (Aux!=NULL) { if(stricmp(procurado, Aux->nome)==0) { printf("Nome: %s\n",Aux->nome); printf("Sexo: %s\n", Aux->sexo); printf("CPF: %d\n\n", Aux->cpf); num=true; } Aux = Aux->elo; } if (num==false) { printf("Erro. Esse nome não existe na lista!\n"); } } } }
×
×
  • Criar Novo...