Ir ao conteúdo
  • Cadastre-se
Larissa Toral

Como achar a media - programação em c

Recommended Posts

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);
}

 

Editado por dif
inserir o código dentro da tag CODE

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Editado por Math.Pi
  • Curtir 1

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

@GabrielLP14

Testei aqui e está incremento bem as alturas.

Eu não usaria assim. Também usaria outra variável somaAltura.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Math.Pi é também é possivel :)

eu testei usando esse método q falei e funcionou :) e esse que você citou também :)

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
Compartilhar em outros sites
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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×