Calculo_IMC, Alguém pode me ajudar?

Feito em C
Estou fazendo um exercício para o técnico alguém pode me ajudar a rodar?
o programa é para calcular o índice IMC.

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

char nome[30];
float peso,altura,imc;

int main();

{
printf(“Digite seu nome\n:”);
scanf("%s",&nome);
printf(“Digite seu peso\n:”);
scanf("%f",&peso);
printf(“Digite sua altura\n:”);
scanf("%f",altura);
imc= pow(altura,altura)/peso);

   if(imc<=18.5)
    {

    printf("magreza");

    }

   else
   if(imc>=18.5 && imc<=24.9)
    {

    printf("normal");

    }
   
   else
   if(imc=>25 && imc<=29.9)
    {
     
    printf("sobrepeso");

    }
   
   else
   if(imc=>30 && imc<= 39.9)
    {
     
     printf("obesidade");
    
     }
 
    else
    if(imc=40)

     {
      
      printf("Obesidade Grave");
      
      }
      
    
     }

Estes foram os erros que eu observei no seu código:

#1 Ponto e virgula logo após o parenteses da função main:

// Errado
int main(); {
    /* ... */
}

// Correto
int main() {
    /* ... */
}

#2 O operador de maior ou igual é >=, mas tem lugares que vc está colocando =>.

#3 No último else if vc colocou imc = 40, acredito que o correto é imc >= 40.

#4 Quando vc vai pegar uma string do teclado, não é necessário usar o &.

// Errado
scanf("%s", &nome);

// Correto
scanf("%s", nome);

#5 Quando vc vai pegar a altura, vc esqueceu o &.

// Errado
scanf("%f", altura);

// Correto
scanf("%f", &altura);

#6 O calculo do IMC é PESO / ALTURA2 e não ALTURAALTURA / PESO.

// Errado
imc =  pow(altura, altura) / peso;

// Correto
imc = peso / pow(altura, 2);
// Correto também
imc = peso / (altura * altura);

Aqui está seu código corrigido:

#include <stdio.h>

char nome[30];
float peso, altura, imc;

int main() {
  printf("Digite seu nome: ");
  scanf("%s", nome);
  printf("\nDigite seu peso: ");
  scanf("%f", &peso);
  printf("\nDigite sua altura: ");
  scanf("%f", &altura);

  imc = peso / (altura * altura);

  if(imc <= 18.5) {
    printf("magreza\n");
  } else if(imc >= 18.5 && imc <= 24.9) {
    printf("normal\n");
  } else if(imc >= 25 && imc <= 29.9) {
    printf("sobrepeso\n");
  } else if(imc >= 30 && imc <= 39.9) {
    printf("obesidade\n");
  } else if(imc >= 40) {
    printf("Obesidade Grave\n");
  }
}

Aproveitando para dar uma dica:

Sua sequencia de if pode ser simplificada da seguinte forma:

if(imc < 18.5) {
  printf("magreza\n");
} else if(imc < 25) {
  printf("normal\n");
} else if(imc < 30) {
  printf("sobrepeso\n");
} else if(imc < 40) {
  printf("obesidade\n");
} else {
  printf("Obesidade Grave\n");
}
1 curtida

Muitas coisas eu não sabia e outros foram erros por falta de atenção. Obrigado por me ajudar e mapear os erros de um jeito que sanou todas minhas dúvidas.

1 curtida