Ir ao conteúdo
  • Cadastre-se

goku5023

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

posts postados por goku5023

  1. Olá pessoal no novo aqui no fórum. Preciso de ajuda para ordenar uma lista em C. Segue o meu código:

    //Criando o tipo celula
    typedef struct no celula;
    
    //definindo a estrutura da celula
    struct no
    {
        int numero_atleta;
        int raia;
        float tempo_chegada;
        int numero_prova;
        char sexo;
        struct no *prox;
    };
    
    int tamanho(celula *lista)
        {
            celula *p;
            int i;
            i = 1;
            
            p = lista;
            
            while (p->prox != NULL){
                         p = p->prox;
                         i++;
            }
            printf("i= %d\n", i);        
            return i;
            
        }
    
        
        void ordenaTempo(celula *lista)
        {
            int n, r, p,i,j;
            char s;
            float t;
            
            celula *aux, *aux2;
            int tam;
            tam = tamanho(lista);
        
            aux = lista;
            aux2 = lista->prox;        
            for(i=1; i<tam-1;i++)
            {
                for(j=1;j<tam-i;j++)
                {    
                     if(aux->tempo_chegada > aux2->tempo_chegada)
                    {
                        n = aux->numero_atleta;
                        r = aux->raia;
                        t = aux->tempo_chegada;
                        p = aux->numero_prova;
                        s = aux->sexo;
                        
                        aux->numero_atleta = aux2->numero_atleta;
                        aux->raia = aux2->raia;
                        aux->tempo_chegada = aux2->tempo_chegada;
                        aux->numero_prova = aux2->numero_prova;
                        aux->sexo = aux2->sexo;
                        
                        aux2->numero_atleta = n;
                        aux2->raia = r;
                        aux2->tempo_chegada = t;
                        aux2->numero_prova = p;
                        aux2->sexo = s;    
                    }
                    aux2=aux2->prox;
                }
            }
            lista = aux;
            for(aux2=lista; aux2!=NULL; aux2=aux2->prox)
            {
                    printf("Numero atleta: %d \n",aux2->numero_atleta);
                    printf("Raia: %d \n",aux2->raia);
                       printf("Tempo chegada: %f \n",aux2->tempo_chegada);
                       printf("Tempo chegada: %d \n",aux2->numero_prova);
                    printf("sexo - ( %c )  \n\n",aux2->sexo);
            }
    
        }

        
     

    • Curtir 1

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!