Avete perfettamente ragione purtroppo è la prima volta che ho a che fare con le funzioni, comunque ho corretto lo switch ma c'è un ultimo problema ovvero che quando inserisco i dati della data in input per esempio: "monday 23 4 1993"
in output mi ritorna 0 23 4 1993
lunedì
per il resto funziona.
#include<stdio.h>
#include<string.h>
#define NSERIE 2
typedef enum{monday=1,tuesday,wednesday,thursday,friday,saturday,sunday}tipogiorno;
struct strcentralina{char centr[6];
float temperatura;
float umidita;
float polveri_sottili;
int giorno;
int mese;
int anno;
tipogiorno giornosettimana;};
typedef struct strcentralina centralina;
void leggidati(centralina *dati)
{ tipogiorno gdg;
char stringa1[15];
printf("inserire dati rilevazione, ovvero giorno della settimana,centralina,umidita',temperatura,polveri e data:\n");
scanf("%s",stringa1);
scanf("%s %f %f %f %d %d %d",&(dati->centr),&(dati->umidita),&(dati->temperatura),&(dati->polveri_sottili),&(dati->giorno),&(dati->mese),&(dati->anno));
if (strcmp(stringa1,"monday")==0)
gdg=monday;
else if(strcmp(stringa1,"tuesday")==0)
gdg=tuesday;
else if(strcmp(stringa1,"wednesday")==0)
gdg=wednesday;
else if(strcmp(stringa1,"thursday")==0)
gdg=thursday;
else if(strcmp(stringa1,"friday")==0)
gdg=friday;
else if(strcmp(stringa1,"saturday")==0)
gdg=saturday;
else if(strcmp(stringa1,"monday")==0)
gdg=monday;
dati->giornosettimana=gdg;
}
void stampadati(centralina *dati)
{
printf("la data della rilevazione e': %d %d %d %d\n",dati->giornosettimana,dati->giorno,dati->mese,dati->anno);
switch(dati->giornosettimana)
{
case monday: printf("lunedi'\n");
break;
case tuesday: printf("martedi'\n");
break;
case wednesday: printf("mercoledi'\n");
break;
case thursday: printf("giovedi'\n");
break;
case friday: printf("venerdi'\n");
break;
case saturday: printf("sabato\n");
break;
case sunday: printf("domenica\n");
break;
}
printf("la centralina e': %s\n",dati->centr);
printf("umidita' e temperatura valgono %f e %f C\n",dati->umidita,dati->temperatura);
printf("concentrazione polveri sottili: %f ug/m3\n",dati->polveri_sottili);
}
int main (int argc, char** argv)
{ int i;
centralina centr1[NSERIE];
for(i=0;i<NSERIE;i++){
leggidati(¢r1[i]);}
for(i=0;i<NSERIE;i++){
stampadati(¢r1[i]);}
return 0;
}