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
mi aiutate nel ragionamento dandomi qualche spunto? oggi sto più fregato del solito....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 */![]()

Rispondi quotando
