Estou tendo dificuldade em uma atividade que tem como objetivo calcular somente a media de números pares

Este é o problema…

Escrever um algoritmo que, dada uma seqüência de valores inteiros e positivos, determine qual é a média aritmética dos valores pares. O valor 0 (zero) indica o término dos dados de entrada, ou seja, o programa termina quando for informado o valor 0(zero).

E este é meu código
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int numero ,media =0,soma = 0,contador = 0;

	do {
		System.out.println("digite um numero inteiro e positivo");
		numero = scan.nextInt();
		contador = contador+1;
		soma += numero;
		if (numero % 2 == 0) {
			media = soma / (contador - 1);
		}

	}while(numero != 0 );


	System.out.println("a soma dos valores é  " + soma);
	System.out.println("a media dos valores é " + media);
}

}

E qual o problema?

não esta tirando a media só dos números pares

Se quer tirar a média apenas de números pares, você não deveria colocar o contador e a soma dentro do if? Porque eles vao ficar somando mesmo se não for par

if (numero % 2 == 0) {
    contador = contador+1;
	soma += numero;
	media = soma / (contador - 1);
}
1 curtida

não deu, quando eu coloco um numero par o programa da erro

public class Atividade04 {

public static void main(String[] args) {
	Scanner scan = new Scanner(System.in);
	int numero ,media =0,soma = 0,contador = 0;

	do {
		System.out.println("digite um numero inteiro e positivo");
		numero = scan.nextInt();
		 
		if (numero % 2 == 0) {
			 	contador = contador+1;
				soma += numero;
				media = soma / (contador - 1);
		}

	}while(numero != 0 );


	System.out.println("a soma dos valores é  " + soma);
	System.out.println("a media dos valores é " + media);
}

}

Seu if tem que ficar desta forma.

if (numero % 2 == 0) { 
   contador = contador+1; 
   soma += numero; 
   media = soma / contador;
 }
1 curtida

funcionou vlw <3