Hola Jhon, espero que estés bien
Tu código está casi perfecto para lo que necesitas. Has hecho un buen trabajo al estructurar las condiciones para verificar la compatibilidad para donar sangre. Sin embargo, hay un pequeño detalle que puedes ajustar para que el mensaje de salida sea más claro y se alinee con el ejemplo de salida esperado.
En el caso de que el donante no cumpla con los criterios, el mensaje debería indicar específicamente qué criterio no fue cumplido. Actualmente, ya lo haces, pero podrías modificar ligeramente el mensaje para que sea más claro y similar al ejemplo proporcionado.
Con esta modificación, el programa indicará claramente que el donante no es compatible y especificará el motivo, lo cual es muy útil para el usuario.
Espero haber ayudado y buenos estudios!