Olá pessoal, sou novo aqui no fórum. Não estou conseguindo ordenar uma lista em C, gostaria que vocês me ajudassem. Segue minha função de ordenação:
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;
Ordenar uma Lista
em Grupo de Estudos
Postado
Olá pessoal, sou novo aqui no fórum. Não estou conseguindo ordenar uma lista em C, gostaria que vocês me ajudassem. Segue minha função de ordenação:
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);
}
}
Essa aqui é minha estrutura:
//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;
};