Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

verificador de promedio final

import java.util.Scanner;

public class Principal {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Ingrese el promedio final: ");
        double media = sc.nextDouble();

        if (media >= 7.0){
            System.out.printf("El estudiante tuvo un promedio de %.1f y fue aprobado.\n", media);
        }else if (media >= 5.0 && media <= 6.9){
            System.out.printf("El estudiante tuvo un promedio de %.1f y está en recuperación.\n", media);
        }else{
            System.out.printf("El estudiante tuvo un promedio de %.1f y fue reprobado.\n", media);
        }
    }
}
2 respuestas

Hola Manuel, espero que estés bien

Tu código parece estar en buen camino para resolver el problema planteado. Has implementado correctamente las condiciones if/else para verificar el promedio final del estudiante y determinar su situación académica según las reglas de la escuela. Aquí hay algunas cosas que puedes verificar para asegurarte de que todo funcione correctamente:

  1. Entrada del usuario: Asegúrate de que al ingresar el promedio final, el formato sea correcto (por ejemplo, usar punto en lugar de coma para los decimales).

  2. Condiciones: Las condiciones if, else if y else que has utilizado coinciden con las reglas dadas en el ejercicio. Eso está perfecto.

  3. Formato de salida: Estás utilizando System.out.printf para formatear la salida, lo cual está bien para mostrar un decimal. Asegúrate de que el formato %.1f sea el que deseas para mostrar el promedio con un decimal.

Tu código debería funcionar correctamente si sigues estos pasos. Si encuentras algún error, verifica si hay algún problema con la entrada o si hay algún error tipográfico en el código.

Espero haber ayudado y buenos estudios!

Hola Brenda, me percate que la versión de java JDK 17 maneja los decimales con el ".", la versión JDK 21 las maneja con la ",", realice algunas modificaciones para manejar la entrada del usuario con las recomendaciones que me realizaste en este y los demás ejercicios:

*En el mensaje de entrada agregue que signo debería utilizar el usuario para separar los decimales. *utilicé el try catch para manejar la "exception" en caso separe los decimales con la "," , si ocurre la "exception" imprimirá un mensaje mas descriptivo del error. *como buena práctica al final del main cerré el Scanner con sc.close() para liberar espacio.

import java.util.InputMismatchException;
import java.util.Scanner;

public class Principal {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        try {
            System.out.print("Ingrese el promedio final (Utilizar el \".\" para separar los decimales): ");
            double media = sc.nextDouble();

            if (media >= 7.0){
                System.out.printf("El estudiante tuvo un promedio de %.1f y fue aprobado.\n", media);
            }else if (media >= 5.0 && media <= 6.9){
                System.out.printf("El estudiante tuvo un promedio de %.1f y está en recuperación.\n", media);
            }else{
                System.out.printf("El estudiante tuvo un promedio de %.1f y fue reprobado.\n", media);
            }
        }catch (InputMismatchException e) {
            System.out.println("Por favor, utilizar \".\" y no la \",\" para separar los decimales al ingresar el promedio final.");
        }

        sc.close();
    }
}