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 {
public static void main(String[] args) {
int numero;
int cont = 0;
Scanner in = new Scanner(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();
int media = numero/cont;
System.out.println("\nA média dos numero digitados é de: "+ media + "\nForam digitados " + cont + " números." );
}
}
Você precisa acumular a soma…
int numero;
int soma = 0;
int cont = 0;
...
numero = in.nextInt();
if (numero >= 0) {
soma += numero; //soma = soma + numero
cont++;
}
...
int media = soma/cont;
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!
1 curtida
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:
public static void main(String[] args) {
int numero;
int cont = 0;
int soma= 0;
Scanner in = new Scanner(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();
int media = 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
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!
1 curtida