3
respostas

[Bug] Meu código não retorna a média correta, podem me ajudar a encontrar o erro?

<script>

    function pulaLinha() {
    
        document.write("<br>");
        document.write("<br>");
    
    }
    
    function mostra(frase) {
    
        document.write(frase);
        pulaLinha();
    
    }
    
    var totalFamiliares = parseInt(prompt("Quantidade de familiares?"));
    
    var numero = 1;
    while(numero <= totalFamiliares) {
    var totalIdades = 0;
        var idades = parseInt(prompt("Informe idade do familiar"));
        totalIdades = totalIdades + idades;
        numero++;
    
    }
    var mediaDasIdades = totalIdades/totalFamiliares
    mostra("A média das idades dos familiares é " + mediaDasIdades);
    mostra("FIM");
    
    </script>
3 respostas

Oi Paula, tudo bem com você?

O problema está na posição da declaração da variável totalIdades. Atualmente, você a está definindo dentro do loop while, o que faz com que ela seja redefinida a cada iteração do loop, perdendo os valores anteriores. Para resolver o problema você deve realizar o seguinte ajuste no código:

var totalFamiliares = parseInt(prompt("Quantidade de familiares?"));

var numero = 1;
var totalIdades = 0; // Movimentar a declaração para fora do loop

while(numero <= totalFamiliares) {
    var idades = parseInt(prompt("Informe idade do familiar"));
    totalIdades = totalIdades + idades;
    numero++;
}

Fazendo isso, o programa irá calcular a média corretamente.

Espero ter conseguido ajudar, qualquer dúvida estou a disposição.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Pelo que eu vi no seu código, a variável totalIdades está dentro do loop, assim toda interação no loop está zerando ela, tenta colocar fora que deve funcionar.

Obrigada pessoal!