Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Proyecto] Compatibilidad de Sangre

import java.util.Scanner;

public class CompatibilidadSangre {
    public static void main(String[] args) {
        int edad;
        double peso;
        Scanner entrada = new Scanner(System.in);

        System.out.print("Ingresa tu edad: ");
        edad = entrada.nextInt();   
        System.out.print("Ingresa tu peso (kg): ");
        peso = entrada.nextDouble();
        entrada.close();

        if (edad >= 18 && edad <= 65 && peso > 50) {
            System.out.println("El donante es compatible.");
        } else {
            System.out.println("El donante no es compatible.");
            if (edad < 18 || edad > 65) {
                System.out.println("Motivo: Debe tener entre 18 y 65 años.");
            }
            if (peso <= 50) {
                System.out.println("Motivo: Debe pesar más de 50 kg.");
            }




    }
}
1 respuesta

Hola Jesús, espero que estés bien

Tu código está muy bien encaminado para resolver el problema de verificación de compatibilidad para donar sangre. Sin embargo, para que tu programa indique específicamente qué criterio no se cumple cuando un donante no es compatible, necesitas ajustar un poco la lógica de las condiciones if.

Aquí tienes una sugerencia para mejorar tu código:

import java.util.Scanner;

public class CompatibilidadSangre {
    public static void main(String[] args) {
        int edad;
        double peso;
        Scanner entrada = new Scanner(System.in);

        System.out.print("Ingresa tu edad: ");
        edad = entrada.nextInt();   
        System.out.print("Ingresa tu peso (kg): ");
        peso = entrada.nextDouble();
        entrada.close();

        if (edad >= 18 && edad <= 65 && peso > 50) {
            System.out.println("El donante es compatible.");
        } else {
            System.out.println("El donante no es compatible.");
            if (edad < 18 || edad > 65) {
                System.out.println("Motivo: Debe tener entre 18 y 65 años.");
            }
            if (peso <= 50) {
                System.out.println("Motivo: Debe pesar más de 50 kg.");
            }
        }
    }
}

Con estos cambios, el programa primero verifica si el donante es compatible cumpliendo ambos criterios. Si no lo es, verifica cada criterio por separado y proporciona un mensaje específico para cada uno que no se cumpla. Esto asegura que el usuario reciba información detallada sobre por qué no es compatible para donar sangre.

Espero haber ayudado y buenos estudios!