questa è la traccia:

-Leggere un vettore di date e ordinarlo
in modo non decrescente
-Utilizzare l’algoritmo di ordinamento
bubble sort

è nella lezione delle strutture ho buttato giu un po di codice

codice:
#include <stdio.h>
#define dim 10

struct data {int giorno; int mese; int anno;};
typedef enum {FALSE, TRUE} BOOLEAN;
int leggi (struct data *d);
int visualizza(struct data d);
BOOLEAN confronta (struct data d1, struct data d2);
int leggidate(struct data a[], int n);
int visualizzadate(struct data a[], int n);
int ordina (struct data a[], int n);





int main(){
    int n, i;
    struct data a[dim];
    
    printf("numero di strutture desiderate = ");
    scanf("%d", &n);
    
   
    
    leggidate(a,n);
    visualizzadate(a,n);
    ordina(a,n);    
    visualizzadate(a,n);
    
    
    system("pause");
    return 0;
}

int leggi(struct data *d){
    printf("inserisci giorno = ");
    scanf("%d", &d->giorno);
    printf("inserisci mese = ");
    scanf("%d", &d->mese);
    printf("inserisci anno = ");
    scanf("%d", &d->anno);
}


int visualizza(struct data d){
    printf("%d %d %d", d.giorno, d.mese, d.anno);
    printf ("\n");
}

int leggidate(struct data a[], int n){
    int i;
    for(i=0;i<n;i++);
    leggi(&a[i]);

}

int visualizzadate(struct data a[], int n){
    int i;
    for(i=0;i<n;i++);
    visualizza(a[i]);
}

BOOLEAN confronta ( struct data d1, struct data d2)

{ BOOLEAN ris;
if (d1.anno < d2.anno) ris=TRUE;
else
if (d1.anno > d2.anno) ris=FALSE;
else 
if (d1.mese < d2.mese) ris=TRUE;
else
if (d1.mese > d2.mese) ris=FALSE;
else 
if (d1.giorno < d2.giorno) ris=TRUE;
else
if (d1.giorno > d2.giorno) ris=FALSE;
else 
ris = TRUE;
return ris;
}

int ordina (struct data a[], int n){
    
        /*QUI NON HO PROPRIO IDEA COME MODIFICARE L'ALGORITMO DEL BUBBLESORT
           PER FARLO FUNZIONARE */
mi aiutate nel ragionamento dandomi qualche spunto? oggi sto più fregato del solito....