bueno, lo que dices no tiene fundamentos... la programación lógica se rige por la lógica, no puede realizar acciones que no sean programadas lógicamente...
te puedo asegurar que replicando tu ejercicio se obtienen los resultados correctos, quizá estas omitiendo algo y por ende te estas confundiendo...
aún así, no motivo alguno para que te funcione completamente al revés tu código!!