Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com o uso da biblioteca library.h


vini-300

Pergunta

Olá, boa tarde,

 

Sou bastante leigo em programação. Estava fazendo um programa que calcula o IMC (indice de massa corporal), acredito ser bem clássico este hehe. 

Esta aqui, como ficou o programa : 

#include<stdio.h>
#include<stdlib.h>
#include<locale.h>

main(){
       
       setlocale(LC_ALL,"portuguese");
       int P;
       float H,IMC;
       
       printf("Digite o seu peso em kilogramas: \n");
       scanf("%d",&P);
       printf("Digite sua altura em metros : \n");
       scanf("%f",&H);
       
       IMC=P/(H*H);
       
       if (IMC<18.5){
                     printf("Seu IMC é de %.2f. Você está abaixo do peso\n",IMC); 
                     }
       else {
             if (IMC<24.9){ 
                            printf("Seu IMC é de %.2f. Você está com peso normal\n",IMC);
                            }
       else{
            if(IMC<29.9){
                         printf("Seu IMC é de %.2f. Você está acima do peso \n",IMC);
                         }
       else{
            if(IMC<34.9){
                         printf("Seu IMC é de %.2f. Você está com obesidade\n",IMC);
                         }
       else{
            if(IMC<39.9){
                         printf("Seu IMC é de %.2f. Você está com obesidade severa\n",IMC);
                         }
       else{
            printf("Seu IMC é de %.2f. Você está com obesidade mórbida\n",IMC);
            }
            
      system("pause");
}}}}      }
       
                No entanto, quando o programa vai exibir o resultado, o cálculo sai errado, ele toma o IMC como igual ao peso, ou seja, não divide o peso pelo quadrado da altura, como o é na fórmula. Então, quando eu apago o #include<locale.h> e a função correspondente setlocale(......), o programa calcula certo. Soube que o erro está em que deveria por vírgulas nos números decimais (18,5 e não 18.5) para o português. Fiz isso e só piorou, o programa simplesmente fecha quando acionado a mostrar o resultado.

Então alguém poderia me apontar onde está o erro ??

*OBS: usando o dev c++ 4.9.9.2. No dev c++ 5.1, no meu proprio computador também não deu certo...                  
 

Agradeço o apoio !

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...