Jump to content
Fórum Script Brasil
  • 0

Duvida algoritimo


laritoral
 Share

Question

Faça um algoritmo que receba a idade e a altura de várias pessoas, calcule e mostre a média das alturas daquelas com mais de 50 anos.
Para encerrar a entrada de dados, digite uma idade menor ou igual a zero.
 
Esse é a proposta do trabalho, o meu código ficou assim:
 

 float idade, altura, media, cont;
    media = 0;
    cont = 0;

    while (idade >0)
    {
        printf ("DIGITE SUA IDADE:");
        scanf ("%f", &idade);

        printf ("DIGITE SUA ALTURA:");
        scanf ("%f", &altura);

        if (idade >50)
        {

            media = media + altura;

        }
        cont++;
    }

    media = media/cont;

    printf ("A media de altura das pessoas com mais de 50 anos é: %.2f", media);

 

Porem a media está danado errado, gostaria de alguém que possa apontar meu erro 

Obrigado
 

 
 
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

O raciocínio está correto, basta utilizar mais uma variável para fazer o backup da média. Veja só:

 #include <stdio.h>
 #include <stdlib.h>

 int main ()

 {

 float altura, media=0, backup_media=0;

 int idade=10, cont=0;

    while (idade > 0)

    {
        printf ("DIGITE A IDADE:");
        scanf ("%d", &idade);

        printf ("DIGITE A ALTURA:");
        scanf ("%f", &altura);

        printf ("\n");

        if (idade >50)

        {

        cont++;

            backup_media+=altura;
            media=backup_media;
            media/=cont;



        }

     printf ("A media de altura das pessoas com mais de 50 anos é: %f\n\n", media);

    }

return 0;
}

Se o cálculo for feito apenas somando

 

media = media + altura; 

media / cont;

 

O valor bruto da média aritmética é perdido a cada operação. Por isso o uso de uma variável de backup:

 

backup_media+=altura;
media=backup_media;
media/=cont;

 

backup_media sempre mantém o valor bruto da soma de todas as alturas, e a variável média recebe apenas a média aritmética desse valor bruto fazendo a divisão de acordo com a contagem da variavel cont.

 

Até.
 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...