xicobill Postado Novembro 29, 2008 Denunciar Share Postado Novembro 29, 2008 alguém poderia me ajudar a descobrir o q tem de errado no meu codigo?!as vezes quando vou inserir ordenado ele simplesmente fecha...obrigado..#include <stdio.h> #include <stdlib.h> // Funcoes void lista(); void primeirolista(); void inserirordenadolista(); void removerlista(); void listarlista(); main(){ lista(); } //menu para LISTA SIMPLESMENTE ENCADEADA void lista(){ int ax2=0; do{ printf("\nLISTA SIMPLESMENTE ENCADEADA\n\n"); printf("1 - Inserir 1o elemento\n"); printf("2 - Inserir de forma ordenada\n"); printf("3 - Remover elemento\n"); printf("4 - Listar elementos\n"); printf("5 - Quantidade de elementos\n"); printf("6 - Alterar o campo string de um determinado no\n"); printf("7 - Imprimir o 1o elemento\n"); printf("8 - Voltar ao menu principal\n\n"); scanf("%d",&ax2); switch(ax2){ case 1: primeirolista(); break; case 2: inserirordenadolista(); break; case 3: removerlista(); break; case 4: listarlista(); break; case 5: break; case 6: break; case 7: break; case 8: // variavel auxiliar recebe 8 e sai do laco ax2 = 8; break; default:; } }while(ax2 != 8); }// fim menu para LISTA SIMPLESMENTE ENCADEADA struct nol{ int intl; char charl[10]; struct nol *proxl; } *iniciol, *antl, *auxl; void primeirolista(){ if (iniciol == NULL){ int i; char c[10]; printf("Digite o elemento do campo int: "); scanf("%d", &i); printf("Digite o elemento do campo char: "); scanf("%s", c); auxl=(struct nol *) malloc(sizeof(auxl)); auxl->intl =i; strcpy(auxl->charl,c); auxl->proxl = NULL; iniciol=auxl; }else{ printf("A lista já tem o primeiro no");; } } void inserirordenadolista(){ int teste=1; int i=0; char c[10]; printf("Digite o elemento do campo int: "); scanf("%d", &i); printf("Digite o elemento do campo char: "); scanf("%s", &c); if( iniciol->intl > i){ auxl=(struct nol *) malloc(sizeof(auxl)); auxl->intl =i; strcpy(auxl->charl,c); auxl->proxl = iniciol; iniciol = auxl; }else{ antl = iniciol; auxl = iniciol; while (auxl != NULL){ if (auxl-> intl < i){ antl = auxl; auxl = auxl->proxl; }else{ if (auxl-> intl == i){ teste = 0; printf("elemento já esta na lista"); } auxl = NULL; } } if(teste == 1){ auxl=(struct nol *) malloc(sizeof(auxl)); auxl->intl =i; strcpy(auxl->charl,c); auxl->proxl = antl->proxl; antl->proxl = auxl; } } } void removerlista(){ int teste=0; int i; printf("Digite o elemento do campo int: "); scanf("%d", &i); while (auxl != NULL){ if (auxl-> intl < i){ antl = auxl; auxl = auxl->proxl; }else{ if (auxl-> intl == i){ teste = 1; } auxl = NULL; } } if(teste == 1){ antl->proxl = auxl->proxl; auxl = NULL; free(auxl); }else{ printf("o elemento não esta na lista"); } } void listarlista(){ int k; if(iniciol== NULL){ printf("Lista vazia!!\n"); }else{ for(auxl = iniciol; (auxl!=NULL); auxl=auxl->proxl){ printf("%d\n",auxl->intl); puts(auxl->charl); printf("\n"); } } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Geninaldo Andre Ferreira Andre Postado Novembro 12, 2017 Denunciar Share Postado Novembro 12, 2017 legal Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
xicobill
alguém poderia me ajudar a descobrir o q tem de errado no meu codigo?!
as vezes quando vou inserir ordenado ele simplesmente fecha...
obrigado..
Link para o comentário
Compartilhar em outros sites
1 resposta 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.