Cristian Kirsch Foesch Postado Abril 3, 2018 Denunciar Share Postado Abril 3, 2018 Pessoal eu tenho esse código que esta compilando mas quando vou executar alguma das funções ele trava, alguém pode me ajudar? #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> typedef struct lista{ int info; struct lista *prox; }Lista; Lista *cria(){ return NULL; } Lista* insere_ordenado (Lista*l, int v){ Lista* novo = cria (); Lista* ant = NULL; Lista* p = l; while (p!=NULL && p->info < v){ ant=p; p=p->prox; } if(ant==NULL){ novo->prox=l; l=novo; } else { novo->prox= ant->prox; ant->prox=novo; } return l; } Lista *conecta(Lista* l1, Lista *l2){ lista*p,*q; if(l1=NULL) return l2; p=l1; do{q=p; p=p->prox; } while(p!=NULL); q->prox=l2; return l1; } Lista *separa(Lista*l,int n){ lista *p, *q; for(p=l;p!=NULL;p=p->prox) if(p->info==n){ q=p->prox=NULL; } return q; } Lista* constroi (int n,int* v){ Lista*p; Lista*q; int i; q=NULL; for(i=n-1;i<=0;i--) {p=(Lista*)malloc(sizeof(Lista)); p->prox=q; p->info=v[i]; q=p; } return q; } Lista* retira_prefixo (Lista* l, int n) { Lista* p; Lista* q; int m=1; p=l; while (p != NULL && m<=n) { m=m+1; q=p->prox; free(p); p=q; } return p; } void opcoes (){ printf ("Escolha a opcao\n"); printf ("1 - Inserir um dado\n"); printf ("2 - Conecta listas \n"); printf ("3 - Separa listas\n "); printf ("4 - Retirar um Elemento\n"); printf ("5 - Insere Ordenado\n"); printf ("6 - Sair\n"); printf ("Digite um valor fora da lista para repetir o menu\n"); } main () { Lista *l,*l1,*l2=NULL, *ret; int op, a, x, v; opcoes (); scanf ("%d",&op); while (op!=6){ switch (op){ case 1: printf ("Digite o valor\n"); scanf ("%d",&a); l=insere_ordenado(l,a); break; case 2:printf ("Digite o valor da lista 1\n"); scanf ("%d",&a); l1=insere_ordenado(l,a); printf ("Digite o valor da lista 2 \n"); scanf ("%d",&a); l2=insere_ordenado(l,a); l=conecta (l1,l2); break; case 3: printf ("Digite o valor aonde voce quer separar a lista\n"); scanf ("%d",&a); l=separa (l,a); break; case 4: printf ("Informe o valor para remover da lista\n"); scanf ("%d",&v); ret=retira_prefixo (l,v);break; case 5:printf ("Informe o valor para remover da lista\n"); scanf ("%d",&v); l=insere_ordenado (l,v);break; default: printf ("\nOpcao invalida\n\n"); opcoes(); } printf ("\nInforme a opcao\n"); scanf ("%d",&op); } system ("pause"); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Cristian Kirsch Foesch
Pessoal eu tenho esse código que esta compilando mas quando vou executar alguma das funções ele trava, alguém pode me ajudar?
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.