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;
Pergunta
joaopaulo19
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;
};
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.