Calcular la nota media, nota mayor y nota menor de una serie de alumnos

Programa Java que pida por teclado la nota obtenida por cada alumno en un examen y calcule y muestre la nota media de la clase, la nota mayor y la nota menor.  
Solución:
Para resolver el ejercicio utilizaremos como estructura repetitiva un bucle for.
Seguiremos los siguientes pasos:
1.         Introducir por teclado el número de alumnos.
2.         Para cada alumno pediremos su nota.
3.         Para calcular la media utilizaremos una variable llamada suma donde iremos acumulando todas las notas introducidas. Cuando finalice la lectura de notas, la media de las notas la calcularemos dividiendo el contenido de suma entre el número total de alumnos. Utilizaremos la función printf para mostrar la media con dos decimales.
4.         Para calcular la nota mayor y menor:
a.       Tomaremos la primera nota introducida y la guardamos como mayor y menor
b.      El resto de notas que se vayan introduciendo se comparan con la mayor y menor actual. Si la nota es mayor que la mayor actual se guarda como nueva nota mayor. Si la nota es menor que la nota menor actual se guarda como nueva nota menor.
5.         Finalmente mostraremos por pantalla la media de las notas, la nota mayor y la menor.

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n;
        double nota, suma = 0, mayor, menor;;
       
        System.out.println("Nota media, mayor y menor de una clase");
        System.out.println("--------------------------------------");

        do {
            System.out.print("Introduce numero de alumnos: ");
            n = sc.nextInt();  //n contiene el número de alumnos
        } while (n <= 0); //repetir mientras que el valor de n sea <= 0

        System.out.print("Nota del alumno 1: ");
        nota = sc.nextDouble(); // leemos la nota del primer alumno
       
        suma = suma + nota; //la sumamos al acumulador
       
        mayor = nota; //la tomamos como nota mayor y menor
        menor = nota;
       
        for (int i = 2; i <= n; i++) {  // leemos el resto de notas desde el alumno 2 hasta el n
            System.out.print("Nota del alumno " + i + ": ");
            nota = sc.nextDouble();
            suma = suma + nota; // la sumamos al acumulador
            if (nota > mayor){  // se compara la nota con la mayor y con la menor actual
                mayor = nota;
            } else if (nota < menor) {
                menor = nota;
            }
        }

        // mostrar resultados
        System.out.printf("Nota media: %.2f %n" , suma/n);
        System.out.println("La mayor nota ha sido un " + mayor);
        System.out.println("La menor nota ha sido un " + menor);
    }
   
}

No hay comentarios:

Publicar un comentario