rodrigoar 0 Denunciar post Postado Junho 5, 2010 Ola, Estou começando em c++, e para exercitar, quero fazer uma calculadora de indice de massa corporal (imc). consegui fazer o cauculo, so que quero que apareça a descrição de acordo com o o peso encontrado! acho que devo usar o switch case, mas não estou conseguindo. me ajudem por favor! ja quebrei a cabeça! #include<iostream> #include<math.h> #include <cstdlib> using namespace std; int main(void) { float p, a, imc; cout<<"\nEntre com seu peso: "; cin>> p; cout<<"\nEntre com sua altura: "; cin>> a; a=pow(a,2); imc=(p/a); cout<< "\nIMC: " << imc << endl; switch (imc) { case 1: imc (<=17); cout<<"\nVoce esta muito abaixo de seu peso"; break; case 2: imc >17 || <=18.49; cout<<"\nVoce esta abaixo do seu peso"; break; case 3: imc >18.5 || <=24.99; cout<<"\nVoce esta no seu peso ideal"; break; case 4: imc >25 || <=29.99; cout<<"\nVoce esta acima do peso"; break; case 5: imc >30 || <=34.99; cout<<"\nVoce esta com obesidade nivel 1"; break; case 6: imc >35 || <=39.99; cout<<"\nVoce esta com obesidade severa nivel 2"; break; case 7: imc >40; cout<<"\nVoce esta com obesidade morbida nivel 3"; break; } system ("pause"); } Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Junho 5, 2010 1 == 1.5? Pense e responda. Compartilhar este post Link para o post Compartilhar em outros sites
rodrigoar 0 Denunciar post Postado Junho 5, 2010 Oi _Isis_, não é igual não, mas o que você quer dizer com isso? Desculpe a minha ignorância, só comecei nessa de programação faz uma semana! rsrsrs... Compartilhar este post Link para o post Compartilhar em outros sites
valramos 0 Denunciar post Postado Junho 5, 2010 Eu acho melhor você usar if else do q o case! Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Junho 5, 2010 você está usando float p/ cálculo e inteiros no switch. Não ficou claro? Compartilhar este post Link para o post Compartilhar em outros sites
rodrigoar 0 Denunciar post Postado Junho 5, 2010 Segui a dica do valramos e deu certo, valeu! Obrigado a todos! Só mais uma coisa, como faço para poder usar ç, e asentos? E porque quando eu separo os valores por ponto funciona corretamente, mas com virgula ele calcula errado e da erro? tipo: Peso: 50.8 (da certo) 50,8 (da errado). Esse negocio de programar é viciante! to gostando da ideia! rsrsrs... Veja como eu fiz: #include<iostream> #include<math.h> #include <cstdlib> using namespace std; int main(void) { float p, a, imc; cout<<"\nEntre com seu peso separado por ponto: "; cin>> p; cout<<"\nEntre com sua altura separado por ponto: "; cin>> a; a=pow(a,2); imc=(p/a); cout<< "\nIMC: " << imc << endl; if (imc < 17) { cout<<"\nVoce esta muito abaixo de seu peso ideal!\n"; }else if (imc >=17 && imc <=18.49){ cout<<"\nVoce esta abaixo do peso ideal!\n"; }else if (imc >=18.5 && imc <=24.99){ cout<<"\nPeso normal, Parabens!\n"; }else if (imc >=25 && imc <= 29.99){ cout<<"\nVoce esta muito acima de seu peso ideal!\n"; }else if (imc >=30 && imc <=34.99){ cout<<"\nVoce esta no nivel 1 de obesidade!\n"; }else if (imc >=35 && imc <=39.99){ cout<<"\nVoce esta no nivel 2 de obesidade! (Severa)\n"; }else if (imc >=40){ cout<<"\nVoce esta no nivel 3 de obesidade! (morbida)\n"; } system ("pause"); } Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Junho 5, 2010 Cara, tem um regra por aqui que diz é pra postar código entre as tags CODE... Provavelmente o uso de acentos está ligado ao LOCALE do seu ambiente. Aqui eu uso aCentos sem problema nenhum tanto em C como em C++. "Dá errado" com vírgula porque as casas decimais são separadas por ponto e os milhares, por vírgula. Convenção dos EUA e afins. Compartilhar este post Link para o post Compartilhar em outros sites
rodrigoar 0 Denunciar post Postado Junho 5, 2010 Cara, tem um regra por aqui que diz é pra postar código entre as tags CODE... Provavelmente o uso de acentos está ligado ao LOCALE do seu ambiente. Aqui eu uso aCentos sem problema nenhum tanto em C como em C++. "Dá errado" com vírgula porque as casas decimais são separadas por ponto e os milhares, por vírgula. Convenção dos EUA e afins. me perdoe, desconhecia essa regra, na verdade não li as regras! (peço desculpas!) vou ler as regras. Obrigado pelas dicas! Deus abençõe! Compartilhar este post Link para o post Compartilhar em outros sites