如何使用函数计算BMI?

时间:2016-03-28 05:53:56

标签: c function codeblocks

计算体重指数。 体重指数将您的体重与身高进行比较,计算方法是将体重(千克)除以身高(米)的平方。它可以让您了解自己的身高是否体重不足,健康体重,超重或肥胖。

体重指数分类:

  1. 体重不足=< 18.5
  2. 正常体重= 18.5-24.9
  3. 超重= 25-29.9
  4. 肥胖= BMI为30或更高
  5. 如果您体重不足或超重或肥胖,请根据您的身高和年龄确定理想体重。

    使用Devine公式估算理想体重(kg):

    男性:func()

    女性:IBW = 50 kg + 2.3 kg for each inch over 5 feet.

    IBW = 45.5 kg + 2.3 kg for each inch over 5 feet.

    帮助我仍然不知道如何执行这些功能。请帮帮我。

2 个答案:

答案 0 :(得分:2)

您应该使用方法中使用的参数来计算BMI。 您的变量BMI,高度和重量最初未在函数中声明。相反,你应该将BMI声明为double,并使用height和weight作为函数参数。

此外,您需要从函数返回BMI的值。您错误地返回calculateBMI,它不是函数内的有效标识符。

工作代码为: -

double calculateBMI(double weight, double height)
{
    double BMI = weight / (height*height);
    return BMI;
}

另外,你还没有在main()中调用方法calculateBMI()。

...
printf("Enter your weight in kilograms:\n"); //Input your weight in kilograms here
scanf("%lf", &weight);
printf("Enter your height in metres:\n"); //Input your height in metres here
scanf("%lf", &height);
// add below line in your code to call the function.
BMI = calculateBMI(height,weight);
printf("BMI categories:\n");
...

我还建议你阅读更多关于C语言的功能。你需要一些更基本的功能知识(也很难练习)。

  

编辑--->根据OP的评论,最终的代码是:

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

double calculateBMI(double weight, double height);

int main(void)
{
printf("Calculate your BMI\n"); //Calculation of body mass index (BMI)

double w, h, BMI;
printf("Enter your weight in kilograms:\n", w); //Input your weight in kilograms here
scanf("%lf", &w);
printf("Enter your height in metres:\n", h); //Input your height in metres here
scanf("%lf", &h);
BMI = calculateBMI(w,h);
printf("Your BMI is %lf\n", BMI)

printf("BMI categories:\n");
if (BMI < 18.5)
{
    printf("Your BMI is %lf and you are currently underweight.\n");
}
else if (BMI >= 18.5 && BMI <= 24.9)
{
    printf("Your BMI is %lf and you are normal weight.\n");
}
else if (BMI >= 25 && BMI <= 29.9);
{
    printf("Your BMI is %lf and you are currently overweight.\n");
}
else (BMI >= 30);
{
    printf("Your BMI is %lf and you are obese.\n");
}


return 0;
}

double calculateBMI(double weight, double height)
{
    double result;
    result = weight / (height*height);
    return result;
}

答案 1 :(得分:-1)

你的职能:

double calculateBMI(double w, double h)
{
    BMI = weight / (height*height);
    return calculateBMI;
}

这里调用函数并返回函数名“calculateBMI”。

返回你想要的正确值。这不是一个递归函数。