DEFICIENCIAS :

 La expresión de la línea 29 :    if(mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12 || dia==31)
 debería decir :                  if((mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12) && dia<=31)

 La expresión de la línea 29 :   else if(mes==4 || mes==6 || mes==9 || mes==11 || dia==30)
 debería decir :                 else if((mes==4 || mes==6 || mes==9 || mes==11) && dia<=30)


 No preguntas por año bisiesto.