Jump to content

yuripinheiro1402

Members
  • Content count

    2
  • Joined

  • Last visited

Community Reputation

0 Comum

About yuripinheiro1402

  1. yuripinheiro1402

    Erro com ordenação de alocação dinâmica

    Mas estou mexendo com strings, não teria que usar fflush e gets?
  2. yuripinheiro1402

    Erro com ordenação de alocação dinâmica

    Bom dia pessoal, Sou novo no fórum, li a respeito de algumas regras, mas posso estar fazendo algo errado, caso faça, me desculpem. Estou com um problema num código que estou fazendo para fazer uma ordenação, porém, eu rodo ele e ele funciona, mas quando escolho a opção de ordenar, a tela só pisca, não entra nela.. Poderiam dar uma olhada pra ver o que estou fazendo de errado? PS: Não se assustem com o tamanho do código rs, é apenas o ''Ordena'' que estou com dificuldades. #include <stdlib.h> #include <stdio.h> #include <string.h> struct pasta { char nome[80]; int codigo; struct pasta *proximo; struct pasta *anterior; }; struct pasta *inicio, *ultimo, dados[1000]; int q=0; int menu(); void listaligada (struct pasta *); void cadastro(); void ordena(); void grava(); void abre(); void exclui(); void altera(); void lista(); main() { int i; inicio = ultimo = NULL; for ( ; ; ) { i=menu(); switch(i) { case 1: cadastro(); break; case 2: grava(); break; case 3: abre(); break; case 4: ordena(); break; case 5: lista(); break; case 6: exclui(); break; case 7: altera(); break; case 8: exit(1); break; } } } int menu() { int i; system("cls"); printf("\t\tMenu\n\n"); printf("\t1. Cadastro\n"); printf("\t2. Grava\n"); printf("\t3. Abre\n"); printf("\t4. Ordena\n"); printf("\t5. Lista\n"); printf("\t6. Exclui\n"); printf("\t7. Altera\n"); printf("\t8. Sai\n"); printf("\nEntre com a opcao: "); scanf("%d",&i); return i; } void listaligada (struct pasta *p) { if (inicio == NULL) { inicio = ultimo = p; p->proximo = NULL; p->anterior = NULL; return; } ultimo->proximo = p; p->anterior = ultimo; p->proximo = NULL; ultimo = p; } void cadastro() { struct pasta *p; static int i=0; system("cls"); printf("\t\tCadastro\n\n"); printf("\tEntre com os dados. \nTecle apenas ENTER sobre o campo 'nome' sem digitar nada para sair:"); for( ; ; ) { printf("\nNome %d:", i+1); p = (struct pasta *) malloc (sizeof(struct pasta)); fflush(stdin); gets(p->nome); if(!p->nome[0]) break; p->codigo = ++i; listaligada(p); } } void ordena() { int i,j; struct pasta temp; system ("cls"); printf("\n\t\tNomes ordenados:\n\n"); for(i=0 ; i<q ; i++) for(j=i+1 ; j<q ; j++) if (dados[i].nome,dados[j].nome>0) { temp=dados[i]; dados[i]=dados[j]; dados[j]=temp; } } void grava() {} void abre() {} void exclui() {} void altera() {} void lista() { struct pasta *p; system ("cls"); printf("\n\t\tLista\n\n"); p = inicio; while (p!= NULL) { printf("\n%s", p->nome); printf("\nCodigo: %d", p->codigo); p = p->proximo; printf("\n---------\n"); } system("pause"); }
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.