C ++ - 意外的BMI计算

时间:2016-07-13 20:22:11

标签: c++ return

在我最近的项目中,简单来说,我正在计算BMI。

我使用单维数组来表示重量和高度(双重类型)

为了计算BMI,我使用一个函数,将等式作为返回值。

问题是结果远远超出BMI的值(例如:20456)

如果一个可接受的问题,将返回BMI计算的结果是问题的根源吗?

这是我的代码:

#include<iostream>
#include<Windows.h>
#include<string>

double BMI(double height, double weight);

int main()
{
    SetConsoleTitle("Body Mass Index");

    double BMIinput [2];
    std::string Name;

    std::cout << "Enter your height (inches): "; 
    std::cin >> BMIinput[0]; 
    system("CLS");
    std::cin.ignore();

    std::cout << "Enter your weight (pounds): "; 
    std::cin >> BMIinput[1]; 
    system("CLS");
    std::cin.ignore();

    std::cout << "Enter your name: ";  
    std::getline(std::cin, Name); 
    system("CLS");

    std::cout << "Name: " << Name << std::endl;
    std::cout << "BMI: " << BMI(BMIinput[0], BMIinput[1]) << std::endl;
    system("PAUSE");
    system("CLS");

    return 0;
}

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

2 个答案:

答案 0 :(得分:5)

BMI的计算方法是体重超过身高的平方。您的程序计算逆。

答案 1 :(得分:0)

你的BMI公式错了。 72 * 72/210 * 703(六英尺高,15石)约17,000。你需要权重除以高度平方。