Why does multiplying the percentage give negative results?

Asked

Viewed 48 times

0

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

    main()
{
    float altura,peso,soma_altura=0,cont1=0;
    int idade, cont=0,i;

    for(i = 0; i < 25; i++)
    {
        printf("Insira sua idade:\t");
        scanf("%i", &idade);
        printf("Insira sua altura:\t");
        scanf("%f", &altura);
        printf("Insira seu peso:\t");
        scanf("%f", &peso);

        if(idade >= 50){
            cont++;
        }

        if(peso < 40){
            cont1++;
        }   

        if(idade >= 10 && idade <21){
            soma_altura = soma_altura + altura;
        }   

    }

    printf("Quantidade de pessoas com mais de 50 anos = %i:\n", cont);
    printf("Media de altura das pessoas entre 10 e 20 anos = %.2f:\n", soma_altura / 25);
    printf("Porcentagem das pessoas com menos de 40kg = %i:\n", cont1 * 100 / 25);

    system("pause");
}

1 answer

1


The return of {cont1 * 100 / 25} is a value float but your printf expects a whole %i, according to the language documentation when the past type is different from the expected behavior is undefined.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.