PDA

Visualizza la versione completa : problema con typedef struct


ste_dann
04-01-2015, 12:13
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.


#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;
}
}
}

il programma continua ma il problema è riscontrato qui.
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

Scara95
06-01-2015, 00:55
Il tuo codice è sicuramente scorretto in un altro punto
while(risp=falso){
//...
}

Comunque nessuno si prenderà mai la briga di leggere il codice per intero se non utilizzi i tag CODE e indenti bene il codice. :ciauz:

Loading