Originariamente inviato da Janbure
secondo voi devo mettere anche la condizione mm<12 o è sottinteso?
che vuol dire sottinteso?se vuoi metterlo lo metti, certo è che se mese=13 il mese come stringa non lo stampa..
codice:
#include <stdio.h>
int main ()
{
char*nm[]={"gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"};
int gg, mm, aa;
printf("Inserire data nel formato gg/mm/aa: ");
scanf("%d%d%d", &gg, &mm, &aa);
if((((aa % 4 == 0 && aa % 100 != 0) || aa % 400 == 0)&&mm==2&&gg>29)||
gg>31||
(mm==2&&gg>28)||
((mm ==1||mm==4||mm==6||mm==9||mm==11)&&gg>30)){
printf("Data non valida\n");
getchar();getchar();
return 0;
}
printf("%d/%d/%d\n", gg,mm,aa);
printf("%d/%s/%d\n", gg,nm[mm-1],aa);
getchar();getchar();
return 0;
}
prova a studiarti l'if che ho scritto riga per riga (l'ho diviso in righe per chiarezza, potrebbe stare tutto in una)nota le parentesi come sono messe, dove è possibile evitarle e studiati la priorità degli operandi