Problem with order of list
I would like to order the list by the var distance but program will say always "Lista Vazia"
Code:
void imprime_lista (List lista){
int vect_distance[100];
int vect_x[100];
int vect_y[100];
int distancia,posicao;
int contador=-1;
int i=0;
int max=0;
List auxiliar = cria_lista(auxiliar);
List l = lista->next;
while (l!=NULL){
distancia=find_distance(l->info.coordenadas);
vect_distance[i]=distancia;
vect_x[i]=l->info.coordenadas.x;
vect_y[i]=l->info.coordenadas.y;
contador=contador+1;
i=i+1;
l=l->next;
}
while(vect_distance[contador]!=0){
for(i=0;i<=contador;i++){
if (vect_distance[i]>max){
max=vect_distance[i];
posicao=i;
}
}
while(l!=NULL){
if (l->info.coordenadas.x==vect_x[posicao] && l->info.coordenadas.y==vect_y[posicao]){
insere_lista(auxiliar,l->info);
}
l=l->next;
}
vect_distance[posicao]=0;
}
List x = auxiliar->next;
if(x==NULL){
printf("LISTA VAZIA!!");
}
while (x!=NULL){
printf("\nNome: %s", x->info.nome);
printf("\nMorada: %s", x->info.morada);
printf("\nE-Mail: %s", x->info.email);
printf("\nTipo de Comida: %s", x->info.comida);
printf("\nNumero de Telefone: %s", x->info.telefone);
printf("\nObservações: %s", x->info.observacoes);
printf("\nCoordenadas: %d,%d", x->info.coordenadas.x, x->info.coordenadas.y);
switch (x->info.dia_descanso){
case 1: printf("\nDia de descanso semanal: Domingo"); break;
case 2: printf("\nDia de descanso semanal: Segunda-Feira"); break;
case 3: printf("\nDia de descanso semanal: Terça-Feira"); break;
case 4: printf("\nDia de descanso semanal: Quarta-Feira"); break;
case 5: printf("\nDia de descanso semanal: Quinta-Feira"); break;
case 6: printf("\nDia de descanso semanal: Sexta-Feira"); break;
case 7: printf("\nDia de descanso semanal: Sábado"); break;
default: printf("\n\nErro na leitura do dia de descanso!\n\n"); break;
}
printf("\nInicio das ferias: %d/%d", x->info.inicio_ferias.dia, x->info.inicio_ferias.mes);
printf("\nFim das ferias: %d/%d\n", x->info.fim_ferias.dia, x->info.fim_ferias.mes);
x=x->next;
}
}