Hola.
Si interpretamos bien el enunciado, las notas a introducir han de ser números naturales con decimales (double o float), no números enteros(int).
Entonces, haciendo este cambio y añadiendo un bucle para mostrar las notas introducidas tal y como pide el enunciado, tendríamos este código:
public static void main(String[] args) {
double notas[] = new double[5];
double promedio = 0;
double acumulador = 0;
Scanner lea = new Scanner(System.in);
for (int i = 0; i < notas.length; i++) {
System.out.print("Ingrese la nota No. " + (i+1) + " : ");
notas[i] = lea.nextDouble();
acumulador = acumulador + notas[i];
}
//Mostramos notas
System.out.print("Notas ingresadas: ");
for (int i = 0; i < notas.length; i++)
System.out.print(notas[i] + " ");
//Calculamos promedio
promedio = acumulador / 5;
System.out.println("\nEl promedio de las notas es: " + promedio);
Pero no está completo, falta encontrar la nota más alta y la más baja.
Es más, incluso habría que asegurarnos de solo aceptar valores entre 1.0 y 5.0.
Para lograr estas cosas, es conveniente usar métodos, o sea, porciones de código que se dediquen a una tarea concreta.
Por ejemplo, podemos hacer un método que se encargue de pedir la nota. Y repita la petición hasta recibir una nota aceptable. Solo entonces, retornará dicha nota y podremos insertarla en el arreglo de notas.
public static void main(String[] args) {
double notas[] = new double[5];
double promedio = 0;
double acumulador = 0;
for (int i = 0; i < notas.length; i++) {
System.out.print("Ingrese la nota No. " + (i+1) + " : ");
notas[i] = pedirNota();
acumulador = acumulador + notas[i];
}
//Mostramos notas
System.out.print("Notas ingresadas: ");
for (int i = 0; i < notas.length; i++)
System.out.print(notas[i] + " ");
//Calculamos promedio
promedio = acumulador / 5;
System.out.println("\nEl promedio de las notas es: " + promedio);
}
private static double pedirNota() {
Scanner leer = new Scanner(System.in);
double nota;
do {
nota = leer.nextDouble();
} while(nota < 1.0 || nota > 5.0);
return nota;
}
Ahora nos faltaría encontrar la nota más alta y la más baja.
Para esto también haremos dos métodos separados, que recibirán el arreglo de notas y buscarán la nota adecuada.
El programa final quedaría así:
public static void main(String[] args) {
double notas[] = new double[5];
double promedio = 0;
double acumulador = 0;
for (int i = 0; i < notas.length; i++) {
System.out.print("Ingrese la nota No. " + (i+1) + " : ");
notas[i] = pedirNota();
acumulador = acumulador + notas[i];
}
//Mostramos notas
System.out.print("Notas ingresadas: ");
for (int i = 0; i < notas.length; i++)
System.out.print(notas[i] + " ");
//Calculamos promedio
promedio = acumulador / 5;
System.out.println("\nEl promedio de las notas es: " + promedio);
//Buscamos nota más alta y más baja
System.out.println("\nLa nota más alta es: " + buscarNotaAlta(notas));
System.out.println("La nota más baja es: " + buscarNotaBaja(notas));
}
private static double pedirNota() {
Scanner leer = new Scanner(System.in);
double nota;
do {
nota = leer.nextDouble();
} while(nota < 1.0 || nota > 5.0);
return nota;
}
private static double buscarNotaAlta(double[] notas) {
double alta = notas[0];//Tomamos como referencia la primera nota, para luego ir comparando con las demás
for (int i = 1; i < notas.length; i++)
if (notas[i] > alta)
alta = notas[i];
return alta;
}
private static double buscarNotaBaja(double[] notas) {
double baja = notas[0];//Tomamos como referencia la primera nota, para luego ir comparando con las demás
for (int i = 1; i < notas.length; i++)
if (notas[i] < baja)
baja = notas[i];
return baja;
}
Y al ejecutarlo, en pantalla podremos ver como si se introducen notas fuera de rango se insiste en volver a pedirla de nuevo.
Y veremos que se cumplen el resto de peticiones del enunciado:
Ingrese la nota No. 1 :
2.5
Ingrese la nota No. 2 :
4.8
Ingrese la nota No. 3 :
3.1
Ingrese la nota No. 4 :
-3
0.2
1.1
Ingrese la nota No. 5 :
9
4.9
Notas ingresadas: 2.5 4.8 3.1 1.1 4.9
El promedio de las notas es: 3.28
La nota más alta es: 4.9
La nota más baja es: 1.1