Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    problema con typedef struct

    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.
    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;
    					}				
    				}
    			}
    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
    Ultima modifica di MItaly; 06-01-2015 a 01:58 Motivo: Tag CODE

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Il tuo codice è sicuramente scorretto in un altro punto
    codice:
    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.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.