Hacer la media de tres valores de un arreglo en Java

publicado por: Anonymous

Quiero obtener la media de tres notas introducidas en un arreglo:

Código:

System.out.println("nIntroduca notas correspondientes(1-10)");         

for(j=0;j<3;j++)
{               
    do{
        System.out.print("Nota "+(j+1)+" : ");
        notas[j]=tecla.nextInt();   
        if(notas[j]<1 || notas[j]>10)
        {
            System.out.println("nLa notas deben ir del 1 al 10, introduzca de nuevo");
        }
    }while(notas[j]<1 || notas[j]>10);                          
}                       
objAlumnos.setNotas(notas); 

Pero tengo esa parte de código para introducir las notas, pero ahora no se como coger cada nota para sumarla y dividirla entre 3.

solución

Codigo

package javaapplication8;

import java.util.Scanner;

public class JavaApplication8 {

    public static void main(String[] args) {

        int cantidad = 3;
        int[] notas = new int[cantidad];

        Scanner teclado = new Scanner(System.in);

        System.out.println("nIntroduzca notas correspondientes (1-10)");

        for (int i = 0; i < cantidad; i++) {

            int nota;

            do {

                System.out.print("Nota " + (i + 1) + " : ");

                nota = teclado.nextInt();

                if (!(nota >= 1 && nota <= 10)) {
                    System.out.println("nLa notas deben ir del 1 al 10, introduzca de nuevo");
                }

            } while (!(nota >= 1 && nota <= 10));

            notas[i] = nota;
        }

        System.out.println("La media de las notas es " + calcularMedia(notas));

    }

    public static double calcularMedia(int[] arreglo) {

        double resultado = 0;

        for (int nota : arreglo) {
            resultado += nota;
        }

        return (resultado / arreglo.length);
    }

}

Resultado

Introduzca notas correspondientes (1-10)
Nota 1 : 5
Nota 2 : 5
Nota 3 : 5
La media de las notas es 5.0
BUILD SUCCESSFUL (total time: 5 seconds)

Explicacion

Hemos creado esta funcion:

public static double calcularMedia(int[] arreglo) {

    double resultado = 0;

    for (int nota : arreglo) {
        resultado += nota;
    }

    return (resultado / arreglo.length);
}

Cuya utilidad consiste en tomar un arreglo, que sin importar el tamaño que tenga, te devolverá el promedio de los elementos del mismo.

Cabe aclarar que la funcion que realiza la media, debe ser de tipo double preferiblemente, ya que la media consiste en una division y el resultado de la misma puede conllevar el uso de decimales.

Ademas hemos dejados este par de variables:

int cantidad = 3;
int[] notas = new int[cantidad];

Para dejar tu codigo de modo que si el ejericio te pide ingresar mas de tres notas, solo basta cambiar el valor de cantidad por la cantidad de notas que necesitas calcular. Y no necesitaras realizar mas cambios en el codigo.


Ver Ejemplo

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *