cami-la / loops-e-arrays

Repositório do curso Estruturas de Repetição e Arrays com Java. Curso este oferecido pela Digital Innovation one e ministrado por mim.
https://web.digitalinnovation.one/home
1.39k stars 351 forks source link

Ex 03 média #24

Open Daniflav94 opened 2 years ago

Daniflav94 commented 2 years ago

Ooi Camila tudo bem? No exercício 3 estou com uma dúvida, a minha resolução não dá o valor correto para a média parece que ele está arredondando, pois quando inseri os valores 5, 5, 2, 2 e 2, a média deveria dar 3,2 e está dando 3,0. Usei o double para declarar a media, está correto?

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

        int num;
        double media;
        int soma = 0;
        int maior = 0;
        int cont = 0;

        do {
            System.out.println("Digite um número: ");
            num = scan.nextInt();

            soma += num;

            if (num > maior) maior = num;

            cont += 1;
        } while (cont < 5);

        media = soma / 5;
        System.out.println("A média dos números digitados é: " + media);
        System.out.println("O maior valor digitado é: " + maior);
    }
}
cami-la commented 2 years ago

Parabéns pelos estudos, @Daniflav94. Então, é bem simples de resolver. É só você colocar o tipo double na variável soma: double soma = 0;

Quando você deixa a soma como inteiro e depois faz a divisão na media, por mais que a variável média seja um double double media; você está dividido dois inteiros: media = soma / 5; e a resposta é um inteiro. Logo, o tipo double suporta um inteiro, mas o contrário não.

Aí você coloca a soma como um double e vai dar certo! (: Se ainda ficou com dúvidas, é só falar.

Kally0897 commented 1 year ago

Oi Camila, bom dia!!

Fiquei com uma dúvida quando vc declara o while.

ex.: while (cont < 5), minha dúvida é do pq não usar o while (cont <= 5).

cami-la commented 1 year ago

Simples, @Kally0897. Vamos lá:

Quando você declara:

Note que a condição de parar o laço muda. No primeiro caso, quando a variável de controle (count) é 5, e no segundo caso, quando ela é 6.

Deu para entender? Se ainda não ficou claro, me diz que explico de outra forma.