qual o problema com esse codigo em c++?
eu estou a prendendo c++ e criei um programa para praticar meus conhecimentos.é uma calculadora de imc,o codigo é esse:
#include <iostream> //calculo de imc
using namespace std;
int main()
{
int x; //peso
float y; //altura
float z; //imc
z=x/(y*y); //imc=peso/alura*altura
cout<<"diga sua altura: ";
cin>> y;
cin.ignore();
cout<<"diga seu peso: ";
cin>> x;
cin.ignore();
cout<<"eis o seu imc: "<<(x/(y*y))<<"\n";
cout<<"-----------------------------------------------------------------\n";
if(z<18.5)
{
cout<<"voce esta abaixo do peso normal\n";
}
if ((18.5<z)&(z<24.4))
{
cout<<"voce esta com o peso normal\n";
}
if ((24.4<z)&(z<29.9))
{
cout<<"voce esta em estado de pre-obesidade\n";
}
if (z>29.9)
{
cout<<"voce esta obeso\n";
}
cin.get();
}
Comments
Olá Cledson, o problema é que o cálculo estava sendo executado antes do usuário tc as variáveis. Me desculpe mas eu tomei a liberdade de executar outras modificações , o código final está anexo abaixo:
//Compilado no Dev-C++ 4.9.9.2
#include <iostream> //calculo de imc
using namespace std;
int main()
{
int x; //peso
float y; //altura
float z; //imc
//z=x/(y*y); O cálculo estava sendo realizado aki
cout<<"diga sua altura: [em metros ex. 1.55]";
cin>> y;
cin.ignore();
cout<<"diga seu peso: [m kilogramas ex. 55]";
cin>> x;
cin.ignore();
z=x/(y*y);// Agora esta sendo realizado aki, depois do usuário
//tc os valores
cout<<"eis o seu imc: "<<z<<"\n";
cout<<"------------\n";
if(z<18.5)cout<<"voce esta abaixo do peso normal\n";
//Quando o if() tem só uma instrução, ele não necessita das
//{chaves} ^.^
if ((z>=18.5)&&(z<24.4))
cout<<"voce esta com o peso normal\n";
//O ideal para comparar dois bits com o operador E é &&,
//não &, mas tb funfa com 1
if ((z>=24.4)&&(z<29.9))
cout<<"voce esta em estado de pre-obesidade\n";
if (z>=29.9)cout<<"voce esta obeso\n";
cin.get();
}
. É isso aí cara!! qualquer coisa de um toke.