Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Bug] Esta dando erro e nao sei como resolver :(

//Tendo como entrada a altura e o sexo (codificado da seguinte forma: 1:feminino 2:masculino) de uma pessoa, construa um programa que calcule e imprima seu peso ideal, utilizando as seguintes Fórmulas:

  • para homens: (72.7 * Altura) – 58
  • para mulheres: (62.1 * Altura) – 44.7

#include <stdio.h>

int main(){

int sexfeminino = 1;
int sexmasculino = 2;
float altura,calculof,calculom;

int sexo = sexfeminino || sexmasculino;



printf("Qual o seu sexo? Utilize 1 para feminino e 2 para masculino");
scanf("%d",&sexo);
printf("Qual sua altura? ");
scanf("%d", &altura);

if(sexfeminino) {

printf("Seu peso ideal é de %f" ,calculof);
calculof == (62.1 * altura) - 44.7;

}
else
printf("Seu peso ideal é de %f" ,calculom);
calculom == (72.7 * altura) - 58;

}

2 respostas
solução!

Oi! Como vai?

Sua lógica está correta, mas o uso da declaração if(sexfeminino) e os operadores de atribuição estão gerando comportamentos inesperados no seu código.

Uma dica interessante para o futuro é utilizar o operador de comparação == no if para comparar valores, e também declarar corretamente o tipo da variável altura no scanf, que deve ser %f para float. Veja este exemplo:


#include <stdio.h>

int main() {
    int sexo;
    float altura, peso;

    printf("Qual o seu sexo? Utilize 1 para feminino e 2 para masculino: ");
    scanf("%d", &sexo);

    printf("Qual sua altura? ");
    scanf("%f", &altura);

    if (sexo == 1) {
        peso = (62.1 * altura) - 44.7;
        printf("Seu peso ideal é: %.2f\n", peso);
    } else if (sexo == 2) {
        peso = (72.7 * altura) - 58;
        printf("Seu peso ideal é: %.2f\n", peso);
    } else {
        printf("Sexo inválido.\n");
    }

    return 0;
}

Esse código faz a leitura correta da altura como float e compara corretamente o valor do sexo para calcular o peso ideal.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Muito obrigado! Que bom que a logica está correta! Obrigado pela atenção!