[ Foro de C ]

Estoy empezando y no sé porque no funciona

09-Oct-2022 19:01
Invitado (ayenfin)
1 Respuestas

Hola, acabo de empezar a estudiar un grado superior de desarrollo y me he quedado atascado con un codigo. Compila y se ejecuta, pero no se qué falla que no termina de funcionar; pido que no juzguéis, acabo de empezar y se que es muy sencillo pero no tengo ni idea de que hacer. SI me podeis decir que falla seria genial. Gracias

#include <stdio.h>

int main (){

   float altura=0.0f;
   float peso=0.0f;
   float IMC = 0.0f;

printf ("Introduce tu altura: ");

scanf ("%f", &altura);

printf ("Introduce tu peso: ");

scanf ("%f", &peso);

IMC = (peso/(altura*altura));

if (IMC<=18.5)
{
printf("Estas en bajo peso");
}

else if (IMC==18.6 || IMC<=24.9)
{
printf("Estas en normopeso");
}

else if (IMC==25 || IMC<=26.9)
{
printf("Estas en Sobrepeso Grado 1");
}

else if  (IMC==27 || IMC<=27.9)
{
printf("Estas en Sobrepeso Grado 2");
}


}


11-Oct-2022 11:30
Nacho Cabanes (+84)

Estás enlazando tus condiciones con "||", pero debería ser con "&&". Por ejemplo, números que sean mayores que 3 ó menores que 5... son todos. Por el contrario, números que sean mayores que 3 Y menores que 5 son un rango muy concreto.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)