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

Desafio Asignatura

import java.util.Scanner;

public class Asignatura {
    public static void main(String[] args) {

        int cantNotas = 3;
        double suma_notas = 0;
        double promedio = 0;

        Scanner scanner = new Scanner(System.in);

        for (int i = 1; i <= cantNotas; i++) {

            double nota;

            while (true) {
                System.out.print("Ingrese nota " + i + " (entre 1 y 10): ");
                nota = scanner.nextDouble();

                if (nota >= 1 && nota <= 10)
                    break;
                else
                    System.out.println("Nota inválida, debe estar entre 1 y 10");

            }
            suma_notas += nota;
        }

        promedio = suma_notas / cantNotas;

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

        scanner.close();
    }
}
1 respuesta

Hola Juan,

¡Espero que estés bien! Revisando tu código, parece que estás muy cerca de lograr lo que se pide en el ejercicio. Sin embargo, hay un pequeño error en las condiciones de tu estructura if/else que podría causar resultados inesperados. Vamos a revisarlo:

En la parte de tu código donde verificas el promedio, tienes:

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

Según las reglas de la escuela, un estudiante es aprobado si su promedio es mayor o igual a 7.0, y está en recuperación si el promedio está entre 5.0 y 6.9 inclusive. Por lo tanto, deberías ajustar las condiciones de la siguiente manera:

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

Con este ajuste, tu programa debería funcionar correctamente de acuerdo con las reglas proporcionadas. Espero que esto te ayude a resolver el desafío.

¡Espero haber ayudado y buenos estudios!