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....