si te fijas el scanf tiene un espacio antes del %d... eso hace que el scanf ignore saltos de línea que pueda haber en el buffer de entrada.
Y te entra una vez porque sigue no vale 1, el scanf te está leyendo basura... prueba si no a hacer un printf de "sigue" a ver que valor sale.
Y te entra una vez porque sigue no vale 1, el scanf te está leyendo basura... prueba si no a hacer un printf de "sigue" a ver que valor sale.