Crie um método que receba como parâmetro um vetor de inteiros, calcula sua média e a retorna .
na hora de calcular, ele dá erro
public class exercicio7
{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i,n;
float resultado;
System.out.print("Quantos elementos vai ter o vetor? ");
n = sc.nextInt();
int[] vet = new int[n];
for(i=0;i<n;i++)
{
System.out.print("Digite um numero: ");
vet[i] = sc.nextInt();
}
resultado = valorMedia(vet);
System.out.printf("MEDIA DOS PARES = %.1f\n", resultado);
}
public static float valorMedia(int[] vet){
int soma=0,cont=0,i,n=0;
float media;
for(i=0;i<n;i++) {
cont=cont+1;
soma=soma+vet[i];
}
media = soma/cont;
return(media);
}
}
qual é o erro?
copia a mensagem inteira de erro e cola aqui
Então, é importante ler essas mensagens de erro e tentar entender o que estão informando.
O erro é “/ by zero” (divisão por zero) na linha 34 do arquivo exercicio7.java
No seu caso a linha deve ser essa ( a única com divisão):
media = soma/cont;
Divisão por zero acontece quando o denominador da divisão é zero. No seu caso o denominador é a variável cont
.
Por que sua variável cont
teria valor zero?
Ela começa com 0 e é incrementada em cada volta do loop.
O loop começa com 0 até o valor de n
.
Qual o valor de n? 0
Ou seja, nunca entra no loop e portanto cont
nunca é incrementada.
PS: você pode copiar só o texto da mensagem de erro, não é preciso o print da mensagem.
Cara ainda não consigo resolver, se mudo como vc disse, o resultado da apenas 0.0
Olhando esse trecho:
int soma=0,cont=0,i,n=0;
float media;
for(i=0;i<n;i++)
Como n
é zero, não vai entrar no for
, e portanto cont
será zero. Por isso dá erro de divisão por zero.
Na verdade não precisa dessas variáveis. Todo array em Java já possui o campo length
cujo valor é o seu tamanho:
public static float valorMedia(int[] vet){
float soma = 0;
for(int i = 0; i < vet.length; i++) {
soma += vet[i];
}
return soma / vet.length;
}
Ou ainda, usando o enhanced for:
public static float valorMedia(int[] vet){
float soma = 0;
for(int nota: vet) {
soma += nota;
}
return soma / vet.length;
}
1 curtida