Why is the multiplication of the percentage giving negative results?

-1
#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");
}
    
asked by anonymous 19.04.2018 / 21:11

1 answer

2

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

    
19.04.2018 / 21:28