#include #include #include #include int main(){ /*definice konstant*/ long wholenumber; unsigned int wholenumber_d; int part2; int year; int month; int day; int lenpart1, lenpart2; int boy; double help; char* ukazatel; char* pom = malloc(21*sizeof(char)); char* part1_s = malloc(20*sizeof(char)); char* part2_s = malloc(20*sizeof(char)); int DAYS []= {0,31,28,31,30,31,30,31,31,30,31,30,31}; int DAYS_P [] = {0,31,29,31,30,31,30,31,31,30,31,30,31}; do{ scanf("%s\n",pom); part2_s = strchr(pom,'/'); if(strlen(pom)>0 && pom[0]=='e') break;/*jakmile narazi na end */ if(part2_s == NULL){ printf("invalid\n"); continue; } *part2_s = 0; part2_s = part2_s + 1; part1_s = pom; if(strchr(part1_s,'/')!=NULL || strchr(part2_s,'/')!=NULL){ printf("invalid\n"); continue; } boy = 1; lenpart1 = strlen(part1_s); lenpart2 = strlen(part2_s); if(lenpart1!=6){ printf("invalid\n"); continue; } if(lenpart2 < 3 || lenpart2 > 4){ printf("invalid\n"); continue; month = month - 50; } sscanf(part1_s,"%u",&wholenumber_d); sscanf(part1_s,"%d.2%d.2%d.2",&year,&month,&day); ukazatel = part1_s+4; /* presun na posledni dvojici */ sscanf(ukazatel,"%d",&day); *ukazatel =0; ukazatel= part1_s+2; sscanf(ukazatel,"%d",&month); *ukazatel =0; ukazatel=part1_s; sscanf(ukazatel,"%d",&year); /*printf("%d %d %d",year,month,day);*/ if((lenpart2 == 3 && year >= 20 && year <= 53) || (year <= 9 && lenpart2 == 4) || (year >= 54 && lenpart2 == 4)){ if(month > 12){ month = month - 50; boy = 0; } if(month >= 1 && month <= 12){ wholenumber = (long)wholenumber_d; help=wholenumber_d; sscanf(part2_s,"%d",&part2); help= help*10000+part2; /*printf(" g%f ",help); printf(" %li |",wholenumber); wholenumber = wholenumber * 10000; printf(" %li ",wholenumber); wholenumber+=part2; printf(" %li ",wholenumber);*/ if( fmod(help,11)!=0 ){ printf("invalid\n"); continue; } if(year <= 9)year = year + 2000; else{ year = year + 1900; } if(year % 4 == 0){ if(day <= DAYS_P[month]){ if(boy == 1){ printf("boy\n"); continue; } else{ printf("girl\n"); continue; } } else{ printf("invalid\n"); continue; } } else{ if(day <= DAYS[month]){ if(boy == 1){ printf("boy\n"); continue; } else{ printf("girl\n"); continue; } } else{ printf("invalid\n"); continue; } } } else{ printf("invalid\n"); continue; } } else{ printf("invalid\n"); continue; } }while(1); free(part1_s); free(part2_s); return 0; /* ok kod*/ }