Calcular média. Está dando valores incoerentes

Se eu digito por exemplo 2, 6 e 9, ele informa que a média é 1.5. Pela calculadora, o resultado é 0,037037037…

[code]import java.util.*;
public class Numeros{
public static void main(String args[]){
Scanner s= new Scanner(System.in);

float n, Acumulador=0;

do{
System.out.println(“Digite um numero maior do que zero”);
n=s.nextFloat();

 if(n&gt0){
 Acumulador=Acumulador+1;
}


}while(n&gt0);
	System.out.println("Media="+ Acumulador/2);
	
	}
	
	
}[/code]

Colega
você tem um acumulador que está somando a quantidade de números que estão sendo entrados.
No final você divide este número por 2 independente de quais ou quantos números foram entrados.
No seu exemplo de entrada, você está dividindo 3 por 2 o que resulta em 1,5.

Use algo do tipo:

[code]float n;
float Acumulador = 0;
int numeros = 0;
do {
System.out.println(“Digite um numero maior do que zero”);
n = s.nextFloat();

if(n & gt0) {
	Acumulador += n;
	numeros ++;
}

} while(n&gt0);
System.out.println("Media = " + Acumulador / numeros);[/code]

Não entendi. Acumulador concatenado e n sendo atribuído a ele? Deu erro.

“Illegal start of expression”.

Tenta assim, amigo!
Abraço!!

import java.util.*;

public class Numeros{

 public static void main(String args[]){
        Scanner s= new Scanner(System.in);

        float n, Acumulador=0;
        int contador = 0;

 do{
        System.out.println("Digite um numero maior do que zero: ");
         n=s.nextFloat();


         if(n > 0){
            Acumulador = Acumulador + n;
            contador   = contador + 1;
        }


    }while(n > 0);

    System.out.println("Media = " + Acumulador / contador);
    }

}

O correto seria tirar o IF desnecessário, ficando assim:

import java.util.*;

public class Numeros{

public static void main(String args[]){
Scanner s= new Scanner(System.in);

float n, Acumulador=0;
int contador = 0;

do{
System.out.println("Digite um numero maior do que zero: ");
n=s.nextFloat();

Acumulador = Acumulador + n;
contador = contador + 1;

}while(n > 0);

System.out.println("Media = " + Acumulador / contador);
}

}

Bom,compilou mas os valores estão errados. Exemplo: 5, 5 e 5. Média: 1.5.

Olha este código aqui, acho que tá blz…

[code]
import java.util.*;

public class Numeros{
public static void main(String args[]){

	Scanner s = new Scanner(System.in);
	
	double n=0, acumulador=0;
	int contador = 0;
	
	do{
		System.out.println("Digite um numero maior do que zero: ");
		n=s.nextDouble();
		if(n!=0){
			acumulador = acumulador + n;
			contador++;
		}
	}while(n>0);
	
	System.out.println("Media = "+ (acumulador / contador));
}

}[/code]

Acho que agora está Ok! testa ele ai…

import java.util.*;
 
 public class Numeros{
 	public static void main(String args[]){
 		
 		Scanner s = new Scanner(System.in);
 		
 		double n=0, acumulador=0;
 		int contador = 0;
 		
 		do{
 			System.out.println("Digite um numero maior do que zero: ");
 			n=s.nextDouble();
 			if(n>0){
 				acumulador = acumulador + n;
 				contador++;
 			}
 		}while(n>0);
 		
 		System.out.println("Media = "+ (acumulador / contador));
 	}
 
 }

Obrigado mesmo! :smiley: