Pesquisar na Comunidade
Mostrando resultados para as tags ''erro no calculo''.
Encontrado 1 registro
-
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 !