Boa noite pessoal. Demorou, mas aqui está a correção do exercício.
Basta copiar e colar no DEVC e testar.
Comparem com o código que vocês fizeram.
/* PROGRAMA CÁLCULO DE IMC
CURSO BÁSICO DE C DO BLOG VIAJEI NA MAGONESES
UTILIZACAO DAS CONDIÇÕES IF E ELSE
AUTOR : RAFAEL SCHNEIDER
DATA: 12/09/2013
*/
#include<conio.h> //bibliotecas padrão para entrada e saida, especificamente de MS-DOS
#include<stdio.h> //biblioteca padrão de entrada e saída de dados.
#include<windows.h> //biblioteca necessária para realização de comandos MS-DOS
float peso, altura,IMC; // declaração das variáves, todas float, separadas por vírgula e com ponto-e-vírgula no final
int sexo;
main() // funçao principal, onde o compilador irá ler primeiro. Sempre será lido o main() primeiro
{ //inicia o bloco da função
printf("Indique seu sexo:\n");
printf("1-Feminino\n2-Masculino\n");
scanf("%i",&sexo);
printf("Digite seu peso: \n"); //imprimi na tela -- o \n significa "nova linha", o cursor estará na linha abaixo
scanf("%f",&peso); //lê o que o usuário digitou, e atribui á variável "peso";
printf("Digite sua altura, em Metros: \n"); //imprimi na tela e solicita que usuário digite outro numero
scanf("%f",&altura); // atribui este valor, á variável "altura"
system("cls"); // comando de DOS "cls" que limpa a tela
IMC = peso /(altura*altura);
/* esta linha acima, esta realizando a fórmula
esta realizando primeiro ( altura * altura ), pois sempre é realizado o parênteses primeiro
após isso, ele divide o peso, pelo produto de ( altura * altura )
e atribui tudo isso á IMC
*/
/* TABELA USADA COMO REFERENCIA
HOMEM MULHER
ABAIXO NORMAL -20 -19
NORMAL 20 A 25 19 A 24
OBESIDADE LEVE 25 A 30 24 A 29
OBESIDADE MODERADA 30 A 40 30 A 39
OBESIDADE MORBIDA + 43 + 40*/
if ( sexo == 1 ){ // Se o sexo for '1', então é Feminino
if ( IMC < 19 ) {
printf("IMC :%f Sexo Feminino, abaixo do Normal", IMC);
}
if ( IMC >= 19 && IMC < 24 ) {
printf("IMC :%f Sexo Feminino, esta Normal ", IMC);
}
if ( IMC >= 25 && IMC < 29 ) {
printf("IMC :%f Sexo Feminino, esta com Obesidade Leve",IMC);
}
if ( IMC >= 30 && IMC < 39 ) {
printf("IMC :%f Sexo Feminino, esta com Obesidade Moderada", IMC);
}
if ( IMC > 39 ) {
printf("IMC :%f Sexo Feminino, esta com Obesidade Morbida ", IMC);
}
}else {
if ( IMC < 20 ) {
printf(" %f Sexo Masculino, esta abaixo do Normal", IMC);
}
if ( IMC >= 20 && IMC < 25 ) {
printf(" IMC :%f Sexo Masculino, está Normal", IMC);
}
if ( IMC >= 25 && IMC < 30 ) {
printf("IMC :%f Sexo Masculino, esta com Obesidade Leve", IMC);
}
if ( IMC >= 30 && IMC < 40 ) {
printf("IMC :%f Sexo Masculino, esta com Obesidade Moderada",IMC);
}
if ( IMC > 40 ) {
printf("IMC :%f Sexo Masculino, esta com Obesidade Morbida ",IMC);
}
}
// %0.2f - significa que o resultado é um numero float ( %f ), mas que conterá somente 2 casas depois da virgula (0.2)
// nota-se que quando é fechado ás aspas duplas, existe uma vírgula e a variável IMC .
// Isso significa que o %0.2f deve mostrar o valor de IMC, caso contrário, o programa não saberia de onde buscar a informação
// Entenderam ??
getch();
// Getch é um comando que aguarda uma ação do teclado, se não clicar, não acontece nada, se clicar, ele fecha;
// se não utilizar este comando, o programa irá mostrar o resultado e fechar muito rapidamente que não será possível ver o resultado.
}// Fecha o Bloco
Era isso pessoal. Próximo capítulo do curso veremos laços de repetição : For e While;
Não pretendo entrar em vetores e matrizes ( a não ser que ocorra apelo popular ), justamente porque pretendo começar outro curso, com utilização de interface gráfica e acesso a banco.
Veremos como que ficará este curso e já iniciaremos outro....
Muito obrigado e Boa semana á todos.