From 16ccd8c0e75971a962dc2d4819cf402b152bbe30 Mon Sep 17 00:00:00 2001 From: Mr SL1D3R <76396365+Mr-sl1d3r@users.noreply.github.com> Date: Tue, 15 Oct 2024 08:47:18 +0200 Subject: [PATCH] Update function and extend global variabile --- funzioni.c | 10 ++++++---- funzioni.h | 6 +++--- main.c | 14 +++++++------- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/funzioni.c b/funzioni.c index fca70f4..98e8c7e 100644 --- a/funzioni.c +++ b/funzioni.c @@ -7,8 +7,10 @@ #include #include +extern Multa *multe[1000]; + // Funzione che restituisce un puntatore alla struct Multa con i dati dell’infrazione ricevuti come parametri -Multa *creaMulta(char targa[], char data[], char ora[], char velocita[]){ +Multa *creaMulta(char targa[], char data[], char ora[], float velocita[]){ Multa *m = (Multa *)malloc(sizeof(Multa)); strcpy(m->targa, targa); strcpy(m->data, data); @@ -25,7 +27,7 @@ void iniziaMulta(Multa *multe[]){ } // Funzione che aggiunge una infrazione all’array globale, nel “primo” posto libero -void aggiungiMulta(Multa *multe[], Multa *m){ +void aggiungiMulta(Multa *m){ int i = 0; while(multe[i] != NULL){ i++; @@ -34,7 +36,7 @@ void aggiungiMulta(Multa *multe[], Multa *m){ } // Funzione che calcola il numero di infrazioni memorizzate nell’array globale che sono state comminate ad una automobile di cui è fornita la targa -void calcolaInfrazioni(Multa *multe[], char targa[]){ +int calcolaInfrazioni(float targa[]){ int i = 0; int count = 0; while(multe[i] != NULL){ @@ -43,7 +45,7 @@ void calcolaInfrazioni(Multa *multe[], char targa[]){ } i++; } - printf("Il numero di infrazioni per la targa %s è %d\n", targa, count); + return count; } // Funzione che salva sul file tutte le infrazioni contenute nell’array globale diff --git a/funzioni.h b/funzioni.h index f8485b7..8dad50f 100644 --- a/funzioni.h +++ b/funzioni.h @@ -12,10 +12,10 @@ typedef struct { char velocita[4]; }Multa; -Multa *creaMulta(char targa[], char data[], char ora[], char velocita[]); +Multa *creaMulta(char targa[], char data[], char ora[], float velocita[]); void iniziaMulta(Multa *multe[]); -void aggiungiMulta(Multa *multe[], Multa *m); -void calcolaInfrazioni(Multa *multe[], char targa[]); +void aggiungiMulta(Multa *m); +int calcolaInfrazioni(float targa[]); void salvaInfrazioni(Multa *multe[]); #endif //AUTOVELOX_FUNZIONI_H diff --git a/main.c b/main.c index 033cdbc..0ba9d85 100644 --- a/main.c +++ b/main.c @@ -21,14 +21,14 @@ int main(void) { Multa *m3 = creaMulta("CD456EF", "12/10/2024", "12:32", "140"); Multa *m4 = creaMulta("EF789GH", "12/10/2024", "12:33", "150"); - aggiungiMulta(multe, m1); - aggiungiMulta(multe, m2); - aggiungiMulta(multe, m3); - aggiungiMulta(multe, m4); + aggiungiMulta(m1); + aggiungiMulta(m2); + aggiungiMulta(m3); + aggiungiMulta(m4); - calcolaInfrazioni(multe, "AB123CD"); - calcolaInfrazioni(multe, "CD456EF"); - calcolaInfrazioni(multe, "EF789GH"); + printf("Infrazioni per la targa AB123CD: %d\n", calcolaInfrazioni("AB123CD")); + printf("Infrazioni per la targa CD456EF: %d\n", calcolaInfrazioni("CD456EF")); + printf("Infrazioni per la targa EF789GH: %d\n", calcolaInfrazioni("EF789GH")); salvaInfrazioni(multe);