Erro na média

import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner leitor = new Scanner(System.in);

int num = 1;
float soma = 0;
int cont = 0;

while(num!= 0){
System.out.println("Informe um número: ");
num = leitor.nextInt();
soma = soma + num;
cont++;
}

float media = soma/cont;
System.out.println("A média dos números informados é: " + media);

}
}

Esse código precisa ser encerrado quando o usuário inserir o número 0 e imprimir a média, mas a média n tá batendo certo, alguém pode me ajudar?

O seu contador incrementa mesmo quando o valor é ZERO que é sua condição de parada do laço, você pode fazer um if para isolar o contador e fazer com que seja incrementado somente com números diferentes ZERO ou calcular a média fazendo media = soma / (contador - 1).

1 curtida