#include <stdio.h>
int isValid( int dd, int mm, int yy) ;
int main( )
{
printf ( "Enter a date in dd/mm/yyyy format: " ) ; int dd, mm, yy;
scanf ( "%d/%d/%d" , & dd
, & mm
, & yy
) ; if ( isValid( dd, mm, yy) )
printf ( "The date is valid.\n " ) ; else
printf ( "The date is invalid.\n " ) ;
return 0 ;
}
int isValid( int dd, int mm, int yy)
{
//int leapYear;
if ( yy <= 0 || mm <= 0 || mm > 12 || dd <= 0 )
return 0 ;
switch ( mm)
{
case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 :
int k = 5 ;
return dd <= 31 ;
case 4 : case 6 : case 9 : case 11 :
return dd <= 30 ;
default :
int a = 1 ;
// int leapYear = yy % 400 == 0 || (yy % 4 == 0 && yy % 100 != 0);
// return dd <= 28 || (leapYear && dd <= 29);
}
return 1 ; //Control never reaches here
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgaXNWYWxpZChpbnQgZGQsIGludCBtbSwgaW50IHl5KTsKCmludCBtYWluKCkKewoJcHJpbnRmKCJFbnRlciBhIGRhdGUgaW4gZGQvbW0veXl5eSBmb3JtYXQ6ICIpOwoJaW50IGRkLCBtbSwgeXk7CglzY2FuZigiJWQvJWQvJWQiLCAmZGQsICZtbSwgJnl5KTsKCWlmIChpc1ZhbGlkKGRkLCBtbSwgeXkpKQoJCXByaW50ZigiVGhlIGRhdGUgaXMgdmFsaWQuXG4iKTsKCWVsc2UKCQlwcmludGYoIlRoZSBkYXRlIGlzIGludmFsaWQuXG4iKTsKCglyZXR1cm4gMDsKfQoKaW50IGlzVmFsaWQoaW50IGRkLCBpbnQgbW0sIGludCB5eSkKewoJLy9pbnQgbGVhcFllYXI7CglpZiAoeXkgPD0gMCB8fCBtbSA8PSAwIHx8IG1tID4gMTIgfHwgZGQgPD0gMCkKCQlyZXR1cm4gMDsKCXN3aXRjaChtbSkKCXsKCQljYXNlIDE6IGNhc2UgMzogY2FzZSA1OiBjYXNlIDc6IGNhc2UgODogY2FzZSAxMDogY2FzZSAxMjoKCQkJaW50IGsgPSA1OwoJCQlyZXR1cm4gZGQgPD0gMzE7CgkJY2FzZSA0OiBjYXNlIDY6IGNhc2UgOTogY2FzZSAxMToKCQkJcmV0dXJuIGRkIDw9IDMwOwoJCWRlZmF1bHQ6CgkJCXByaW50ZigiSGVyZSIpOwoJCQlpbnQgIGEgPSAxOwoJCQlwcmludGYoIiVkIiwgYSk7Ci8vCQkJaW50IGxlYXBZZWFyID0geXkgJSA0MDAgPT0gMCB8fCAoeXkgJSA0ID09IDAgJiYgeXkgJSAxMDAgIT0gMCk7Ci8vCQkJcmV0dXJuIGRkIDw9IDI4IHx8IChsZWFwWWVhciAmJiBkZCA8PSAyOSk7Cgl9CglyZXR1cm4gMTsgLy9Db250cm9sIG5ldmVyIHJlYWNoZXMgaGVyZQp9Cg==
compilation info
prog.c: In function ‘isValid’:
prog.c:26:4: error: a label can only be part of a statement and a declaration is not a statement
int k = 5;
^~~
prog.c:26:8: warning: unused variable ‘k’ [-Wunused-variable]
int k = 5;
^
prog.c: In function ‘main’:
prog.c:9:2: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d/%d/%d", &dd, &mm, &yy);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stdout