Buenas, de entrada tienes un par de warnings que saltan en el compilador, las funciones, si son void no deben devolver nada, deberías borrar el return.
Ahora vamos con el problema, yo te propongo que no uses gets() ya que es una funcion que induce a problemas con el buffer del input. Así que yo de ti crearía algo así, substituyendo el gets por un fgets y un sscanf que es lo que se debe usar para no tener problemas con el input.
Código C:
Ver original//dentro del main
int a;
char cad[15];
//antes del switch
fgets(cad
,sizeof(cad
),stdin
);
//y ahora el switch
switch(a)
{
...
}
Y con eso se debería solucionar el problema
Saludos