Ir para conteúdo
Mith6

Desenvolvimento de software que calcula o imc se ele está em cima ou abaixo de ideal

Recommended Posts

estou criando fazendo um trabalho para casa da faculdade e não consigo terminar uma baseada no imc 

"O peso ideal para uma pessoa é calculado pelas seguintes fórmulas: Sexo Masculino: (72.7*altura)-58  e Sexo Feminino: (62.1*altura)-44.7 Escreva um programa que receba como entrada: sexo (f ou m), altura e peso; calcule o peso ideal usando a fórmula que for pertinente. Como resultado o programa deve exibir na tela: a diferença entre os pesos (peso e peso ideal) e um alerta: “*** Peso normal ou abaixo do ideal ***” "

 

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
    main () {
	float a,p,pim,pif,m,f,imc; //no caso estou fazendo primeiro o masculino
	char sexo;
    printf("Informe o sexo! m para masculino e f para feminino. ");
    scanf("%c", &sexo);
    printf("Altura. ");
    scanf("%f", &a);
    printf("Peso. ");
    scanf("%f", &p);
    
    imc = p / (a*a);	
    pim = (72.7*a)-58; //pim significa peso ideal masculino ou seja peso ideal para a altura
    
    if ((sexo==m) && (imc>=pim))
    printf("\nO peso ideal nao eh ideal: %f",pim);
    
    else 
    printf("Seu peso eh ideal!\n",pim);
    
    system ("pause");
}

estou com serias duvidas do que fazer, se estou errando no if porque o importa o valor que eu por no .exe ele sempre vai dar "o peso é ideal"

Compartilhar este post


Link para o post
Compartilhar em outros sites
  scanf("%c", &sexo);

não se usa isso para char, deve usar getch() ou getche(), diferença que um aparece na tela o char e outro não. Até da para usar do jeito que fizestes, mas tem que haver logo em seguida o:

fflush(stdin);

para limpar o buffer, porque se não vai entrar sujeira e pode ser que isso esteja dando erro no seu código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mith6 o programa realiza somente cálculos simples e não precisa incluir a biblioteca math.h. É desnecessário que haja a variável imc e também calculá-la pois o enunciado não pede essa informação. Está faltando o cálculo do peso ideal para sexo feminino. Está-se comparando a variável sexo com a variável m que não é mesma coisa que o caractere 'm'. Deve-se trocar. Variáveis m e f não são usadas. Podem ser removidas.

 

main(){
  float a,p,pi;
  char sexo;
  printf("Informe o sexo. m para masculino e f para feminino:");
  scanf("%c",&sexo);
  printf("Altura:");
  scanf("%f",&a);
  printf("Peso:");
  scanf("%f",&p);
  if(sexo=='m')
    pi=(72.7*a)-58;
  else
    pi=(62.1*a)-44.7;
  if(p>pi)
    printf("O peso esta acima do ideal.\n");
  else if(p<pi)
    printf("O peso esta abaixo do ideal.\n");
  else
    printf("O peso e ideal!\n"); 
  system ("pause");
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.