Ir para conteúdo
Fórum Script Brasil

Flávio Henrique Carvalho

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Flávio Henrique Carvalho

Flávio Henrique Carvalho's Achievements

0

Reputação

  1. #### Está ocorrendo um loop infinito quando escolho a opção 1 , alguém poderia dar uma olhada pra mim ########## #include <stdio.h> #include <stdlib.h> void insere(); void insere(); void menu(); void exclui(); typedef struct dados { char nome[15]; struct dados *prox; }circular; circular *cria_nodo(); circular *cria_nodo() { circular *p; p=(circular*)malloc(sizeof(circular)); if(!p) { printf("problemas na alocacao"); getch(); exit(0); } } void menu() { system("cls"); static circular *pe = NULL; int op; char nome[15],var; printf("digite 1 para inserir Soldados: "); printf("\ndigite 3 para iniciar a remocao: "); printf("\ndigite 9 para sair:\n"); scanf("%d",&op); switch(op) { fflush(stdin); case 1: { while(var!='N' && var!='n') { printf("Digite o nome do soldado: "); scanf("%s",nome); insere(&pe, nome); fflush(stdin); puts("\nDeseja inserir novos Soldados? S para SIM ou N para não"); scanf("%c",&var); } menu(); } case 3: { exclui(pe); exit(0); } case 9: { exit(0); } } } void insere(circular **n, char dado[15]) { circular *novo, *aux; novo=cria_nodo(); strcpy(novo->nome,dado); if(*n==NULL) { novo->prox=novo; *n=novo; } else { aux=*n; while(aux->prox != *n) { aux=aux->prox; } aux->prox=novo; novo->prox=*n; } } void exclui(circular *p) { char no[15]; circular *paux; int i; if (p==NULL) { printf("Lista vazia"); getch(); menu(); } printf("digite o nome do Soldado para iniciar contagem: "); scanf("%s",&no); while ((strcmp(no, p->nome))!= 0) { p=p->prox; } while(p->prox!=p)//enquanto o nodo não apontar para ele mesmo// { printf("\nA contagem inicia no Soldado: %s", p->nome); getch(); for(i=1;i<3;i++) { if(i==2) { paux=p;//identifica nodo anterior ao que será removido// } p=p->prox; } printf("\nSoldado removido: %s", p->nome); paux->prox = p->prox; free(p); p=paux->prox; } printf("\n\n->Soldado restante: %s", p->nome); getch(); free(p); } int main(int argc, char *argv[]) { menu(); system("PAUSE"); return 0; }
×
×
  • Criar Novo...