Ir ao conteúdo
  • Cadastre-se

Como achar a media - programação em c


Posts recomendados

Vocês podem dar uma ajudinha com esse codigo? 

Ele roda, porém dá a media errada

 

Proposta: 

•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.

 

Codigo:

int main ()
{
    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);
}

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Larissa Toral

Boa tarde.

 

int main ()
{
    float idade, altura, media, cont;
    media = 0;
    cont = 0;
    
    printf ("DIGITE SUA IDADE:");
    scanf ("%f", &idade);
    
    while (idade > 0)
    {
          printf ("DIGITE SUA ALTURA:");
          scanf ("%f", &altura);
          if (idade >50)
          {
             cont++;
             media =  media +altura ;
          }
        
          printf ("DIGITE SUA IDADE:");
          scanf ("%f", &idade);
    }
    media = media/cont;
    printf ("A media de altura das pessoas com mais de 50 anos é: %.2f", media);
}

 

Antes de entrar no while eu já solicitei a digitação da idade. Assim ele vai direto para o final se a primeira idade for 0 ou menor.

Antes de fechar o while ele faz o novo pedido da idade para ser testado.

 

O seu problema no cálculo da média ocorre porque você colocou seu cont++ fora do IF. Ele estava contando todas as pessoas e não somente as que tinham idade acima de 50 anos.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Larissa Toral

se fizer calculando apenas

 

media = media + altura; 

media / cont;

 

O valor média aritmética não será salvo a cada operação. você podia criar uma variável de backup:

 

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

 

backup_media mantém o valor 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.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Math.Pi Obrigado math, achei onde errei. Coloquei o contador depois de tudo. :oops:

 

 

18 minutos atrás, GabrielLP14 disse:

@Larissa Toral

se fizer calculando apenas

 

media = media + altura; 

media / cont;

 

O valor média aritmética não será salvo a cada operação. você podia criar uma variável de backup:

 

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

 

backup_media mantém o valor 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.

Olá, Obrigado pela ajuda 

Mas infelizmente não faço a minima ideia de como usa o "backup" pois não aprendi na faculdade ainda.

Melhor saber que tem outros jeitos de responder 

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
1 hora atrás, Larissa Toral disse:

@Math.Pi Obrigado math, achei onde errei. Coloquei o contador depois de tudo. :oops:

 

 

Olá, Obrigado pela ajuda 

Mas infelizmente não faço a minima ideia de como usa o "backup" pois não aprendi na faculdade ainda.

Melhor saber que tem outros jeitos de responder 

 

 

Esse "backup" ou como eu coloquei (somaaltura) é só uma variável auxiliar. Ela vai guardar a soma das alturas. A "média" seria usada somente pra guardar e exibir a média.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!