laritoral Postado Maio 19, 2016 Denunciar Share Postado Maio 19, 2016 •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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Aristóteles Postado Maio 20, 2016 Denunciar Share Postado Maio 20, 2016 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é. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
laritoral
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 para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.