public class MediaNumerosPositivos {
public static void main(String[] args) {
int a, menor, cont, soma;
float media;
Scanner in = new Scanner(System.in);
soma = 0;
cont = 0;
menor = 0;
System.out.println("Entre com numeros inteiros, um de cada vez e digite ZERO para encerrar.");
a = in.nextInt();
while(a != 0) {
if(a > 0) {
soma = soma + a;
cont = cont + 1;
}
else if(a < menor) {
menor = a;
}
a = in.nextInt();
}
if(cont != 0) {
media = (soma/cont);
System.out.println("Média Aritimética dos números positivos: " + (float)(soma/cont));
}
else {
System.out.println("Nenhum número positivo foi lido.");
}
if(menor == 0) {
System.out.println("Nenhum número negativo foi lido.");
}
else {
System.out.println("Menor número negativo lido: " + menor);
}
}
}
Retorno de dois inteiros?[resolvido]
Pessoal, dúvida muito simples com um programa simplório também..
Ja tentei fazer cast mais não funciona ele ainda mostra na média o número inteiro, nao pega a parte decimal... exe entrando com 5 e 4 retorna como média 4.0
Por que?
3 Respostas
Tenta colocar a variavel soma como float também! 
Até mais!
Isso acontece porque em java a divisão de dois números inteiros tem como resposta um numero inteiro (corta as casas decimais)
se você quiser que de um numero real tem pelo menos um dos termos ser real
ex:
3/2 = 1
3.0/2 = 1.5
3.0/2.0 = 1.5
mas se você tiver os dois como int (o seu caso) faça assim
float r = ((float)3)/2; // de um cast em um dos termos
System.out.print(r);
até mais!
Obrigado Respondido
Criado 21 de outubro de 2010
Ultima resposta 21 de out. de 2010
Respostas 3
Participantes 3
Alura Sistemas operacionais: entenda seu conceito e suas funções Descubra o que são sistemas operacionais, suas funções e tipos. Aprenda tudo de forma clara e objetiva. Não perca tempo!
Casa do Codigo Orientacao a Objetos: Aprenda seus conceitos e suas... Por Thiago Leite e Carvalho — Casa do Codigo