Repetition system how to store a value

1
  

Make a program that will give you the age, height, and weight of 25 people. Calculate and show:

     

The number of people over 50;

     

The average height of people between 10 and 20 years old;

     

The percentage of people weighing less than 40 KG among all people analyzed.

How do I store all heights that the user types and then average all values without putting a lot of printf() and scanf() ?

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

int main(){

    setlocale(LC_ALL, "Portuguese");

    int idade[25], i, sup50=0, peso40=0;
    float altura[25], media_altura, peso[25], porcentagem, idade10_20=0;

    for(i=0; i<25; i++)

    {

        printf("DIGITE A IDADE DA %d PESSOA: ", i+1);
        scanf("%d", &idade[i]);

        printf("DIGITE A ALTURA DA %d PESSOA: ", i+1);
        scanf("%f", &altura[i]);

        printf("DIGITE O PESO DA %d PESSOA: ", i+1);
        scanf("%f", &peso[i]);

        printf("\n");


            if(idade[i]>50)
            {
                sup50++;
            }

            if(idade[i]>=10 && idade[i]<=20)
            {
              // MINHA DÚVIDA É AQUI
            }
            if(peso[i]>40)
            {
                peso40++;
                porcentagem = 100*peso40/25;
            }

    }

    printf("\n\nA QUANTIDADE DE PESSOAS COM IDADE SUPERIOR Á 50 É %d\n\n", sup50);
    printf("A MÉDIA DAS ALTURAS DE PESSOAS ENTRE 10 E 20 ANO É %.2f\n\n",  ? );
    printf("A PORCENTAGEM DE PESSOAS COM PESO INFERIOR Á 40 KG É %.2f%%\n\n", porcentagem);

system("pause");
}
    
asked by anonymous 09.10.2018 / 18:27

1 answer

2

The code does too many things either in the mechanism or in the requirement. It has a lot of variable, and other things needlessly, but main is storing things that exercise does not ask for. You just need to know how many are over 50 and this has been done, you need to know how many people are young and sum up their heights, with these two information just make a simple division for the average height between these people and finally the percentage of people over 40Kg should only be calculated at the end of the loop, it should only count how many people there are.

There is no question of programming is of text interpretation and propose a mathematical solution.

#include <stdio.h>
#include <locale.h>

int main() {
    setlocale(LC_ALL, "Portuguese");
    int idade, sup50 = 0, peso40 = 0, jovens = 0;
    float altura, peso, alturas;
    for (int i = 0; i < 25; i++) {
        printf("DIGITE A IDADE DA %d PESSOA: ", i + 1);
        scanf("%d", &idade);
        printf("DIGITE A ALTURA DA %d PESSOA: ", i + 1);
        scanf("%f", &altura);
        printf("DIGITE O PESO DA %d PESSOA: ", i + 1);
        scanf("%f", &peso);
        printf("\n");
        if (idade > 50) sup50++;
        if (idade >= 10 && idade <= 20) {
            jovens++;
            alturas += altura;
        }
        if (peso > 40) peso40++;
    }
    printf("\n\nA QUANTIDADE DE PESSOAS COM IDADE SUPERIOR Á 50 É %d\n\n", sup50);
    printf("A MÉDIA DAS ALTURAS DE PESSOAS ENTRE 10 E 20 ANO É %.2f\n\n", alturas / jovens);
    printf("A PORCENTAGEM DE PESSOAS COM PESO INFERIOR Á 40 KG É %.2f%%\n\n", peso40 * 0.25);
}

See running on ideone . And no Coding Ground . Also put it in GitHub for future reference .

    
09.10.2018 / 18:44