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

Donador de sangre

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int edad;
        double peso;
        boolean edadValida;
        boolean pesoValido;

        System.out.println("Ingrese la edad del donador: ");
        edad = scanner.nextInt();
        edadValida = edad >= 18 && edad <=65;
        System.out.println("Ingrese el peso del donador: ");
        peso = scanner.nextDouble();
        pesoValido = peso > 50;
        if (edadValida && pesoValido){
            System.out.println("El donante es compatible");
        }else {
            System.out.println("El donante no es compatible");
            if(!edadValida){
                System.out.println("Debe tener entre 18 y 65 años");
            }
            if(!pesoValido){
                System.out.println("Debe pesar mas de 50 kg.");
            }
        }
    }
}
1 respuesta

Hola Gerardo, espero que estés bien

Tu código para verificar la compatibilidad de un donante de sangre está muy bien estructurado y cumple con los requisitos del ejercicio. Sin embargo, para asegurarnos de que el programa funcione correctamente en todos los casos, te sugiero que revises los mensajes de salida para que coincidan exactamente con lo que se espera en el ejercicio. Aquí tienes una pequeña modificación para que el mensaje de salida sea más claro:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int edad;
        double peso;
        boolean edadValida;
        boolean pesoValido;

        System.out.println("Ingrese la edad del donante: ");
        edad = scanner.nextInt();
        edadValida = edad >= 18 && edad <= 65;
        System.out.println("Ingrese el peso del donante (en kg): ");
        peso = scanner.nextDouble();
        pesoValido = peso > 50;
        
        if (edadValida && pesoValido) {
            System.out.println("El donante es compatible.");
        } else {
            System.out.println("El donante no es compatible.");
            System.out.println("Motivo:");
            if (!edadValida) {
                System.out.println("Debe tener entre 18 y 65 años.");
            }
            if (!pesoValido) {
                System.out.println("Debe pesar más de 50 kg.");
            }
        }
    }
}

Con esta modificación, el programa ahora imprime "Motivo:" antes de listar los criterios no cumplidos, lo que hace que el mensaje sea más claro y fácil de entender, tal como se muestra en el ejemplo de salida esperada.

Espero haber ayudado y buenos estudios!