Problema en lenguaje C usando 'fgets' después de 'printf' ya que 'fgets' se ejecuta antes de 'printf' [duplicado]

Posible duplicado:
¿Por qué no se vacía printf después de la llamada a menos que haya una nueva línea en la cadena de formato? (Cía)

Estoy teniendo un problema usandoprintf yfgets como en mi códigoprintf está escrito antes que fget pero no se ejecuta, se ejecuta despuésfgets carreras.

enum { max_string = 127 };
static char string[max_string+1] = "";

int main( int argc, char ** argv ) {    
      printf("Type a String: ");
      fgets(string, max_string, stdin);
      printf("The String is %s\n", string);
      return 0;
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta