Jump to content

Ordenaçao baseada em membros duma estrutura


Recommended Posts

Posted

boas, estou com uma duvida que e a seguinte, eu tenho uma estrutura com uma serie de variaveis e quero imprimir essas variaveis que fazem parte da estrutura com uma ordenação espicifica.

Como por exemplo eu tenho uma estrutura que tem 3 inteiros(a,b e c) e quero imprimi-los por ordem crescente do valor de a...

Como e que faço isto?  😄

Cumps

Posted

pois, ja tinha pensado nisso mas eu quero ordenar numeros com varios digitos como por exemplo 1234 com 4044 e nao ordenar o 1 o 2 o 3 e o 4.Que algoritmo e que me aconselhas ?

Obrigado pela resposta

Posted

O meu problema esta quando por exemplo

typedef struct 
{
    int dia,mes,ano; 
}data_voo;

no main tenho um vector desta estrutura que vai recebendo 3 inteiros a cada ciclo e quero imprimir por ordem crescente do inteiro mes, o dia e o ano correspondentes...como e que eu faço?

Posted

Podes usar a função 'qsort' (http://pubs.opengroup.org/onlinepubs/9699919799/) para ordenar o vector, usando a seguinte função para comparar:

int compara(const void * elem1, const void * elem2)
{
  int indice1, indice2;

  /* Calcula índice da primeira data */
  indice1 = (data_voo *)elem1->dia + (data_voo *)elem1->mes * 31 + (data_voo *)elem1->ano * 31 * 12;

  /* Calcula índice da segunda data */
  indice2 = (data_voo *)elem2->dia + (data_voo *)elem2->mes * 31 + (data_voo *)elem2->ano * 31 * 12;

  return indice1 - indice2;
}
Posted

Nao percebi essa soluçao mas obrigado pela resposta, eu vou dar o codigo que tou a trabalhar e mais facil

typedef struct
{
    int data,codigo_voo,n_passageiros,hora_partida,hora_chegada;
    char cod_origem[DIM],cod_chegada[DIM];
}informacao;

eu vou guardando a informacao num vector deste tipo e eu agora quero ordenar de acordo com a variavel hora_partida e depois imprimir o codigo_voo, a data_voo,hora_partida;hora_chegada e os cods de origem e chegada.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.