Ir para conteúdo
Fórum Script Brasil

xicobill

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que xicobill postou

  1. 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"); } } }
×
×
  • Criar Novo...