Por Favor preciso saber como tirar a média em um vetor

7 respostas Resolvido
J

O exercício pede pra tirar a média em um vetor, segue abaixo o meu código

import javax.swing.JOptionPane;

public class Rec {

    public static void main(String[] args) {
        float[]celulares = new float[4];
        float media = 0, total;
        int soma_v = 0;
        int i;
       
        for (i = 0; i <4; i++){
            celulares[i]= Float.parseFloat(JOptionPane.showInputDialog("Digite o "+ (i +1) + "° valor"));
            soma_v += i;
            media = soma_v / celulares[i];
        }
   
    JOptionPane.showMessageDialog(null, "O resultado da média de vendas é: " + media);       
    }
}

o resultado não está dando o correto, preciso entender como resolver desde ja agradeço.

7 Respostas

Lucas_Camara

O cálculo da média deve ficar fora do FOR. Só faz sentido obter a média após obter o total. Com isso, basta fazer a divisão pela quantidade de itens.

J

eu fiz isso só que aparece esse erro
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 4
at Rec.main(Rec.java:28)

Lucas_Camara

Como vc fez?

J

desse jeito que vc me falou, apenas aparece esse erro

Lucas_Camara

É mais como ficou a divisão? Como vc disse que deu errado, talvez seja apenas um detalhe para arrumar. Pelo erro, vc tentou acessar um índice do vetor que não existe, por isso achei estranho, pq não há necessidade de acessar o índice do vetor no calculo da média.

B

Boas, o problema é que tem uma variavel soma_v que esta a somar a variavel i, no final soma_v vai ter o mesmo valor de i, ou seja 4. Pode efetuar a soma do array dentro do for, e fora do for como o @Lucas_Camara indicou, efetua a media, uma vez que a variavel i já tem o total de elementos, é só dividir o total por i.

public static void main(String[] args) {
    float[] celulares = new float[4];
    float media = 0, total;
    float soma_v = 0;
    int i;

    for (i = 0; i < 4; i++) {
        celulares[i] = Float.parseFloat(JOptionPane.showInputDialog("Digite o " + (i + 1) + "° valor"));
        soma_v +=celulares[i];
    }
    media = soma_v / i;
    JOptionPane.showMessageDialog(null, "O resultado da média de vendas é: " + media);
}
J
Solucao aceita

consegui manos coloquei a conta media pra fora do for como dito o meu colega Lucas_Camara e substitui o [i] por length

Criado 7 de novembro de 2021
Ultima resposta 7 de nov. de 2021
Respostas 7
Participantes 3