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

Verificando aprobación en una asignatura

import java.util.Scanner;

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

        System.out.print("Ingrese la nota del 1 al 10 del estudiante: ");
        int n1 = leer.nextInt();

        System.out.print("Ingrese la nota 2 del 1 al 10 del estudiante: ");
        int n2 = leer.nextInt();

        System.out.print("Ingrese la nota 3 del 1 al 10 del estudiante: ");
        int n3 = leer.nextInt();

        int promFinal = (n1 + n2 + n3) / 3;

        if (promFinal >= 7 ) {
            System.out.println("El estudiante tuvo un promedio de " + promFinal + " y fue aprobado");
        } else if (promFinal >= 5 ) {
            System.out.println("El estudiante tuvo un promedio de " + promFinal + " y esta en recuperacion");
        } else {
            System.out.println("El estudiante tuvo un promedio de " + promFinal + "y fue desaprobado");
        }

    }
}
1 respuesta

Hola Marko, espero que estés bien

Parece que estás en el camino correcto con tu programa, pero hay un pequeño detalle que podrías ajustar para que se alinee mejor con las reglas de la escuela que mencionaste. El problema está en cómo calculas el promedio final. Actualmente, estás usando int para calcular el promedio, lo que significa que el resultado se redondea al número entero más cercano, perdiendo así la parte decimal que es crucial para determinar correctamente si un estudiante está aprobado, en recuperación o reprobado.

Para solucionar esto, puedes cambiar el tipo de dato de promFinal a double y asegurarte de que el cálculo del promedio incluya decimales. Aquí te dejo un ejemplo de cómo podrías hacerlo:

import java.util.Scanner;

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

        System.out.print("Ingrese la nota del 1 al 10 del estudiante: ");
        double n1 = leer.nextDouble();

        System.out.print("Ingrese la nota 2 del 1 al 10 del estudiante: ");
        double n2 = leer.nextDouble();

        System.out.print("Ingrese la nota 3 del 1 al 10 del estudiante: ");
        double n3 = leer.nextDouble();

        double promFinal = (n1 + n2 + n3) / 3.0;

        if (promFinal >= 7.0) {
            System.out.println("El estudiante tuvo un promedio de " + promFinal + " y fue aprobado.");
        } else if (promFinal >= 5.0) {
            System.out.println("El estudiante tuvo un promedio de " + promFinal + " y está en recuperación.");
        } else {
            System.out.println("El estudiante tuvo un promedio de " + promFinal + " y fue reprobado.");
        }
    }
}

Con este ajuste, el programa calculará el promedio con decimales, lo que permitirá evaluar correctamente la situación del estudiante según las reglas de la escuela.

Espero haber ayudado y buenos estudios!