Jump to content
Fórum Script Brasil
  • 0

Problema com o uso da biblioteca library.h


vini-300
 Share

Question

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 to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...