prima di tutto grazie per la risposta.poi...ho scritto come hai detto tu...funziona sempre tutto bene tranne che per il 29 febbraio degli anni bisestili...non so proprio + dove guardare...
codice:#include <stdio.h> int main() { int gg, mm, aaaa; char *mese[] = {"Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"}; int bis=((aaaa % 4 == 0 && aaaa % 100 != 0) || aaaa % 400 == 0); printf("Inserire una data: "); scanf("%d/%d/%d", &gg, &mm, &aaaa); while(1){ if(((mm==2) && (gg>28)) || (((mm==4)||(mm==6)||(mm==9)||(mm==11)) && (gg>30)) || (((mm==1)||(mm==3)||(mm==5)||(mm==7)||(mm==8)||(mm==10)||(mm==12)) && (gg>31)) || ((mm==2 && gg==29) && (aaaa!=bis))){ printf("Data errata!!!\nInserire nuova data:"); scanf("%d/%d/%d", &gg, &mm, &aaaa); } else{ printf("%d %s %d", gg, mese[mm-1], aaaa); break; } } return 0; }

Rispondi quotando