[ Foro de C ]
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");
}
}
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.)