scanf está recopilando la entrada incorrecta

 #include<stdio.h> 
 int main(void)
 {
      double c;
      scanf("%f", &c);
      printf("%f", c);
 }

Este es un ejercicio de un programa que intento escribir, pero me sale el mismo problema con algo tan simple. cuando ejecuto esto e ingreso "1.0", imprime "0.007812". He examinado varias preguntas anteriores que eran similares a las mías y no pude encontrar una respuesta adecuada.