Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
goku5023

C Ordenar lista em C

Recommended Posts

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);
        }

    }

    
 

Editado por Simon Viegas
Olá! Favor ler tópico e seguir orientações sobre POSTAGEM DE CÓDIGOS: http://www.clubedohardware.com.br/announcement/27-poste-seus-c%C3%B3digos-corretamente/
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
void ordenaT(celula *lista){
	celula *ant, *atual, *aux;
	int ok=0;
	
	ant=lista;
	atual=lista;

	while(ok==0){
	ok=1;
	ant=lista;
	atual=lista;
		while(atual!=NULL){
			if(ant->tempo>atual->tempo){
				ok=0;
				aux=ant;
				ant=atual;
				atual=aux;
			}
			ant=atual;
			atual=atual->prox;
		}
	}

}

 

Editado por Gabriel_Moro
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×