/* funzione leggi_fraz riceve in input e produce in outptut una frazione ben formata: intero / intero positivo */ #define MES1 "frazione malformata" #define MES2 "simbolo di frazione errato" #define MES3 "denominatore negativo o nullo" void leggi_fraz (int *nump, int *denp) { char simb_fraz, svuota; int stato; int errore; do { errore = 0; printf ("input una frazione: "); stato = scanf("%d%c%d", nump, &simb_fraz, denp); if (stato < 3) { errore = 1; printf ("%s", MES1); } else if (simb_fraz !='/') { errore = 1; printf ("%s", MES2); } else if (*denp <=0 ){ errore = 1; printf ("%s", MES3); } do { scanf ("%c", &svuota); } while (svuota != '\n'); } while (errore); }