Problems with if doing 2 functions

Asked

Viewed 82 times

0

I have to make a code where I calculate the BMI, but if the person is 15 years or less is not calculated, but is still calculating

#include <stdio.h>

void main()
{
         float peso, altura, imc, idade;
         printf ("digite seu peso:\n");
         scanf ("%f", &peso);

         printf ("digite sua altura:\n");
         scanf ("%f", &altura);

         printf ("digite sua idade:\n");
         scanf("%f", &idade);

      imc = peso/(altura*altura);

               if (idade <=15);{
                  printf ("O IMC não é uma boa medida de sobrepeso para crianças!");
         }
             if (imc < 24){
                      printf ("O seu indice de Massa Corporal e %.2f e esta abaixo do peso ideal\n", imc);
             }
             if (imc >= 25 && imc <=25.99){
            printf("O seu indice de Massa Corporal e %.2f e esta normal\n", imc);
            }

        if (imc >= 26 && imc < 30){
           printf ("O seu indice de Massa Corporal e %.2f e voce esta obeso\n", imc);
           }

       else{
           printf("O seu indice de massa corporal e %.2f e voce esta com obesidade I ou superior\n", imc);
           }     
}

3 answers

1

You were leaving a ; after the check if, right here: if (idade <=15);{. With this his code always jumped to make the calculation, since he was not depending on the if. Follows corrected code.

#include <stdio.h>

void main()
{
         float peso, altura, imc, idade;
         printf ("digite seu peso:\n");
         scanf ("%f", &peso);

         printf ("digite sua altura:\n");
         scanf ("%f", &altura);

         printf ("digite sua idade:\n");
         scanf("%f", &idade);

      imc = peso/(altura*altura);

               if (idade <=15){
                  printf ("O IMC não é uma boa medida de sobrepeso para crianças!");
         }
             if (imc < 24){
                      printf ("O seu indice de Massa Corporal e %.2f e esta abaixo do peso ideal\n", imc);
             }
             if (imc >= 25 && imc <=25.99){
            printf("O seu indice de Massa Corporal e %.2f e esta normal\n", imc);
            }

        if (imc >= 26 && imc < 30){
           printf ("O seu indice de Massa Corporal e %.2f e voce esta obeso\n", imc);
           }

       else{
           printf("O seu indice de massa corporal e %.2f e voce esta com obesidade I ou superior\n", imc);
           }     
}

1


There was a ; in if (idade <=15);{. I made other adjustments, like adding else and the repositioning of the calculation of imc to perform it only when the person’s age is over 15, in order to improve performance.

#include <stdio.h>

void main()
{
     float peso, altura, imc, idade;
     printf ("digite seu peso:\n");
     scanf ("%f", &peso);

     printf ("digite sua altura:\n");
     scanf ("%f", &altura);

     printf ("digite sua idade:\n");
     scanf("%f", &idade);

     if (idade <= 15){
        printf ("O IMC não é uma boa medida de sobrepeso para crianças!");
     } else {

        imc = peso/(altura*altura);

        if (imc < 24){
           printf ("O seu indice de Massa Corporal e %.2f e esta abaixo do peso ideal\n", imc);
        } else
        if (imc >= 25 && imc < 26){
           printf("O seu indice de Massa Corporal e %.2f e esta normal\n", imc);
        } else
        if (imc >= 26 && imc < 30){
          printf ("O seu indice de Massa Corporal e %.2f e voce esta obeso\n", imc);
        } else {
          printf("O seu indice de massa corporal e %.2f e voce esta com obesidade I ou superior\n", imc);
        }
     }  
}

0

void main() { 
float peso, altura, imc, idade; 
printf ("digite seu peso:\n"); 
scanf ("%f", &peso);

     printf ("digite sua altura:\n");
     scanf ("%f", &altura);

     printf ("digite sua idade:\n");
     scanf("%f", &idade);

  imc = peso/(altura*altura);

           if (idade <= 15){
              printf ("O IMC não é uma boa medida de sobrepeso para crianças!");
     }
else{
         if (imc < 24){
                  printf ("O seu indice de Massa Corporal e %.2f e esta abaixo do peso ideal\n", imc);
         }
         if (imc >= 25 && imc <=25.99){
        printf("O seu indice de Massa Corporal e %.2f e esta normal\n", imc);
        }

    if (imc >= 26 && imc < 30){
       printf ("O seu indice de Massa Corporal e %.2f e voce esta obeso\n", imc);
       }

   else{
       printf("O seu indice de massa corporal e %.2f e voce esta com obesidade I ou superior\n", imc);
       }     
}
}

Browser other questions tagged

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