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.
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.
1 curtida
eu fiz isso só que aparece esse erro
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 4
at Rec.main(Rec.java:28)
desse jeito que vc me falou, apenas aparece esse erro
É 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.
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);
}
consegui manos coloquei a conta media pra fora do for como dito o meu colega Lucas_Camara e substitui o [i] por length
2 curtidas