I've changed to this...it works but if there's 3 lists he will print 3times the same list...and not an order list..."Pesquisa special list" its a search funtion with 2 key-word and returns a list...
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 j=-1;
int i=0;
int max=0;
List pesquisa = cria_lista(pesquisa);
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;
}
List mainlist=lista->next;
while(mainlist!=NULL){
for(i=0;i<=contador;i++){
if (vect_distance[i]>max){
max=vect_distance[i];
posicao=i;
}
}
pesquisa=pesquisa_lista_special(lista,vect_x[posicao],vect_y[posicao]);
insere_lista(auxiliar,pesquisa->info);
vect_distance[posicao]=0;
j=j+1;
mainlist=mainlist->next;
}
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;
}
}