salve, sto cercando di creare un programmino che dica ad un insegnante quante ore ha speso in un anno per le diverse attività svolte!
Il problema in sé è risolto ma quando vado a sistemare tutte le piccole imprecisioni, in particolare quando vado a controllare che la "data" inserita sia corretta. Ecco la porzione di programma interessata.
il programma continua ma il problema è riscontrato qui.codice:#include <stdio.h> #define MAX 5 typedef enum{insegnamento, ricerca, gestione }Attivita; typedef enum{falso, vero}boolean; typedef struct{ int Giorno; int Mese; int Anno; }Data; typedef struct{ Attivita TipoAttivita; Data DataAttivita; int durata; }DescrizioneAttivita; int main(){ boolean risp; DescrizioneAttivita Agenda[MAX]; int cont=0, NumeroAttivita=0, i; int OreInsegnamento=0, OreRicerca=0, OreGestione=0; char risp1; while(cont<MAX){ printf("Inserire il tipo di attivita' (0-insegnamento, 1-ricerca, 2-gestione)\n"); scanf("%d", &i); if(i == 0){ Agenda[cont].TipoAttivita == insegnamento; printf("Inserire data attivita' (GG/MM/AAAA): "); scanf("%d", &Agenda[cont].DataAttivita.Giorno); printf("%d", Agenda[cont].DataAttivita.Giorno); if(Agenda[cont].DataAttivita.Giorno<1 || Agenda[cont].DataAttivita.Giorno>31){ risp=falso; while(risp=falso){ printf("Inserire un giorno valido! (GG)"); scanf("%d", &Agenda[cont].DataAttivita.Giorno); if(Agenda[cont].DataAttivita.Giorno<1 || Agenda[cont].DataAttivita.Giorno>31){ risp = falso; }else{ risp = vero; } } }
Perchè non riesco a vedere cosa c'è scritto dentro il giorno attraverso la printf??
printf("%d", Agenda[cont].DataAttivita.Giorno);
sbaglio nell'inserimento del dato?
anche aggiungendo manualmente il valore non riesco a leggerlo, aggiungendo Agenda[cont].DataAttivita.Giorno=21
grazie mille

Rispondi quotando