Java - Ayuda con las posiciones de un array

 
Vista:
sin imagen de perfil
Val: 11
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con las posiciones de un array

Publicado por Meneth (7 intervenciones) el 02/02/2020 12:37:43
Hola.
Tengo un problema con los arrays en el que debo sumar los valores de un array, pero solo debo sumar los valores que estén en las posiciones pares de un array, y luego calcular la media de esos valores.
Se cómo sumar los valores de un array, pero no se como hacer para sumar los valores que estén en una posición específica del array.

Tengo hecho esto, pero creo que lo hace es sumar los valores pares de un array, no las posiciones

1
2
3
4
5
6
7
8
9
10
11
12
13
public double media(int[] array4){
    double media;
    int cont=0;
    int suma=0;
    for(int i=0;i<array4.length;i++){
        if(array4[i]%2==0){
            cont++;
            suma+=array4[i];
        }
    }
    media=suma/cont;
    System.out.println(media);
    return media;


Me lío mucho con los arrays...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con las posiciones de un array

Publicado por Kabuto (1381 intervenciones) el 02/02/2020 21:55:24
Hola

Aqui:
1
if(array4[i]%2==0){

Estás preguntando si el valor es par.

Pero creo entender que lo que has de preguntar es si la POSICIÓN es par, es decir, el valor que da la variable i. Por tanto la condición del IF sería:

1
if(i%2==0){


Por otra parte, también puedes solucionarlo haciendo que la i se vaya incrementando de dos en dos y por lo tanto, SIEMPRE tendrá valores pares así que no sería necesario comprobarlo

1
2
3
4
for(int i=0;i<array4.length;i+=2){
       cont++;
      suma+=array4[i];
    }


i+=2 es lo mismo que poner i = i + 2;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con las posiciones de un array

Publicado por Meneth (7 intervenciones) el 03/02/2020 18:58:03
Muchas gracias por responder.
Tiendo a confundir lo que es el valor de los elementos de un array con la posición y me lío bastante.
Efectivamente, lo que necesitaba era la posción par del array, no comprobar si el valor que contiene dicha posición es par.
Tengo otra pregunta:
¿Como puedo averiguar la última posición de un array si no sé su tamaño?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con las posiciones de un array

Publicado por Kabuto (1381 intervenciones) el 04/02/2020 01:20:49
Los arrays tienen un atributo llamado length que indica, como puedes adivinar, su longitud/tamaño.

Por eso, al recorrer un array, en el bucle for solemos emplear dicho atributo como condición del bucle:

1
for(int i=0;i<array4.length;i+=2)

Ahí, le estamos diciendo al bucle for que:
1) use la variable i inicializándola a 0 --> int i = 0;
2) que el bucle se ha de repetir mientras la i sea inferior al tamaño del array llamado array4 --> i<array4.length;
3) que en cada iteración, incremente el valor de i en 2 unidades --> i+=2;

Importante apreciar que no podemos permitir que la i, que es la variable que "apunta" a las posiciones del array, jamás tenga un valor igual o superior al de la longitud del array.
Esto es porque en ese caso, la i estaría apuntando a posiciones que no existen y se produciría una excepción (un error)

Es decir, si por ejemplo la longitud de un array es 10, sus posiciones válidas van del 0 hasta el 9, así que la i (o la variable que estemos usando para apuntar a posiciones) ha de moverse solo entre esos valores.

Volviendo al atributo length de los arrays, es un valor int que podemos recoger en una variable y/o hacer operaciones aritméticas.

Si por ejemplo te piden hacer un programa que muestre en pantalla el último valor de un array, del que desconoces de antemano cuál es su tamaño, se podría hacer así:

1
2
int longitud = array.length;
System.out.println(array[longitud - 1]);

O también, directamente se podría hacer así:
1
System.out.println(array[array.length - 1]);

Insisto que el valor que usamos para apuntar posiciones, no puede ser mayor o igual que la longitud del array.
Si pruebas a hacer esto en un código, verás que se produce una excepción y el programa termina bruscamente:
1
System.out.println(array[array.length]);


Otro supuesto, imagina que te piden crear un array que sea el doble de grande que otro ya existente:

1
2
int longitud = arrayExistente.length;
arrayDobleDeGrande = new int[longitud * 2]

En fin, que con el atributo length podemos conocer el tamaño de un array y además operar con dicho valor como con un int cualquiera.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 11
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con las posiciones de un array

Publicado por Ishtarah (7 intervenciones) el 12/02/2020 20:42:01
Perdón por respnder tarde.
Muchas gracias por todo, me ha sido muy útil ^^
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar