9
respostas

[Dúvida] Peso ideal - Linguagem C

Pessoal, não consigo sair disso... ele lê a altura e já calcula direto o peso ''Feminino'', mesmo eu colocando M

1 - O cálculo do peso (massa) ideal de uma pessoa é realizado de acordo com o seguinte critério:

  • Para o sexo masculino: peso ideal = (72.7 * altura) - 58

  • Para o sexo feminino: peso ideal = (62.1 * altura) - 44.7 Escreva um programa em C que solicita a altura de uma pessoa e o seu sexo (M ou F) e, com base nisso, executa e apresenta o peso ideal desta pessoa.

int main() { float Altura,AlturaxPeso; char Sexo;

printf("Digite a sua altura (Ex.: 1.75):");
scanf("%f",&Altura);

printf("Digite o seu sexo (M para Masculino e F para Feminino):");
scanf("%c",&Sexo);

if(Sexo == 'M'){
    AlturaxPeso=((72.7*Altura)-58);
    printf("O seu peso ideal eh: %.3f\n",AlturaxPeso);
}
else
{
    AlturaxPeso=((62.1*Altura)-44.7);
    printf("O seu peso ideal eh: %.3f\n",AlturaxPeso);
}

system("pause");
return 0;

}

9 respostas

Adicione um espaço no teu scanf:

scanf(" %c",&Sexo);

Serve para limpar do Buffer do teclado e assim evitar que esse tipo de problema ocorra.

Ele continua calculando somente o valor da equação para Feminimo, mesmo eu inserindo M (masculino)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Adiciciona isso antes do segundo printf(), fflush(stdin), e testa pra ver se funciona. esse fflush(stdin) limpa o buffer após o scanf.

Se estiver no linux no lugar do fflush(stdin) usa o __fpurge(stdin)

Encontrei a solução: retirar 1 sinal de igual

Obrigado a todes

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Outra coisa, se tiver digitando m minusculo ele não entre no if, pois se não me engano m e M pra C é diferente.

Mas deve ter algo errado ai, pois um = só é para atribuição == é de comparação.

Realmente, tirando um = ele só calcula para masculino

Deu certo! finalmente. obrigado a todos

int main() { float Altura,AlturaxPeso; char Sexo;

printf("Digite a sua altura (Ex.: 1.75):");
scanf("%f",&Altura);

printf("Digite o seu sexo (M para Masculino e F para Feminino):");
scanf(" %s",&Sexo);

if(Sexo == 'M'){
    AlturaxPeso=((72.7*Altura)-58);
    printf("O seu peso ideal eh: %.3f\n",AlturaxPeso);
}
else
{
    AlturaxPeso=((62.1*Altura)-44.7);
    printf("O seu peso ideal eh: %.3f\n",AlturaxPeso);
}

system("pause");
return 0;

}