Pessoal, estou tentando resolver o seguinte exercício: “Entrar com números enquanto forem positivos e imprimir a média e quantos números foram digitados.” Consegui resolver quase todo o exercício, mas estou tendo um problema na hora de calcular a MÉDIA dos números digitados. Alguém pode me dar uma luz!?
Segue o código fonte que digitei até então:
import java.util.Scanner;
public class Exercicio5 {
publicstaticvoidmain(String[]args){intnumero;intcont=0;Scannerin=newScanner(System.in);do{System.out.println("Entre com um número positivo, um numero negativo encerra a digitação:");numero=in.nextInt();cont++;}while(numero>=0);in.close();intmedia=numero/cont;System.out.println("\nA média dos numero digitados é de: "+media+"\nForam digitados "+cont+" números.");}
Imagino que para a média ser calculada corretamente você só pode incrementar cont quando o número digitado for positivo, assim como a soma…
Perceba que você acaba verificando se o número é positivo 2x, pode também usar while e comparando já na entrada assim…
...System.out.println("Entre com um número positivo, um numero negativo encerra a digitação:");while((numero=in.nextInt())>=0){soma+=numero;cont++;}...
Dessa forma você já valida e garante apenas entrada de números positivos!
T
Tihhmachado
Muito obrigado pela ajuda, no meu raciocínio a média deveria levar em consideração o numero negativo também, mas realmente faz sentido oque você disse, alterei meu código seguindo sua dica e ficou assim:
Scannerin=newScanner(System.in);System.out.println("Entre com um número positivo, um numero negativo encerra a digitação:");while((numero=in.nextInt())>=0){soma+=numero;cont++;}in.close();intmedia=soma/cont;System.out.println("\nA média dos numero digitados é de: "+media+"\nForam digitados "+cont+" números.");}
Agora rodou perfeitamente e a média está sendo calculada corretamente! Muito obrigado e peço que me corrija caso tenha feito algo errado kkk
R
rodevops1 like
Mas se o numero negativo é justamente a condição de saída, não faz sentido entrar no cálculo, de qualquer forma, bons estudos!