DEFICIENCIAS :
A la expresión :
if(d>31 || d==0)
printf("fecha no valida");
flag=1;
se te "olvidó" colocarle llaves, en varias ocasiones durante el programa programa.
La expresión :
else
printf("\n\"NO ESTA EN EL RANGO LA FECHA INGRESADA\"");
debería estar una llave antes de la que está, ya que si se ingresa un año menor
que 1800 o mayor que 2010 tu programa no responde.
La expresión de la línea 24 : if(d>28 || d==0){
debería decir : else if(d>28 || d==0){
Ya que si no tu programa falla con años bisiestos, por ejemplo con la fecha :
29/2/2000 .