当前位置:C++技术网 > 精选软件 > C++ Primer Plus 6th 3.7 编程练习题 第2题 BMI计算

C++ Primer Plus 6th 3.7 编程练习题 第2题 BMI计算

更新时间:2019-02-20 11:29:13浏览次数:1+次

C++ Primer Plus编程练习题3.7 第2题  BMI计算

题目:
2.编写一个小程序,要求以几英尺几英寸的方式输入其身高,并以磅为单位输入其体重。(使用3个变量来存储这些信息。)该程序报告其BMI(Body Mass Index,体重指数)。为了计算BMI,该程序以英寸的方式指出用户的身高(1英尺为12英寸),并将以英寸为单位的身高转换为以米为单位的身高(1英寸=0.0254米)。然后,将以磅为单位的体重转换为以千克为单位的体重(1千克=2.2磅)。最后,计算相应的BMI--体重(千克)除以身高(米)的平方。用符号常量表示各种转换因子。

答案:书上无答案。

C++技术网辅导详解解答:
    此题的难度不在于代码复杂,而是在于题目复杂。我们要在看似复杂的题目中,逐步提炼关键的信息。首先要提取到的是第一句话里的三个变量存储三个信息,并提示输入。所得代码如下:
int feet, inch,weight;
cout << "输入自己的身高英尺数:";
cin >> feet;
cout << "输入自己的身高英尺数外的英寸数:";
cin >> inch;
cout << "输入自己的体重(磅为单位):";
cin >> weight;
    然后再接触到BMI的概念,我们要弄明白是怎么回事再进行处理。这段描述看起来很拗口,我们这样梳理一下:x英尺x英寸(用户输入的) -> x英寸 -> x米(1英寸=0.0254米) ; x磅(用户输入的) -> x千克(1千克=2.2磅);BMI = x千克 / x米的平方。
    能够清晰的梳理出上面三段变化过程,这个代码就非常清晰了。很多人很容易被这里面的描述给绕晕了。而这个解决问题的能力是必须要锻炼的。你可以通过画草图流程图的形式逐个的标记下来。这样就可以把复杂的需求描述还原为最简单的功能实现流程。
    有了上述的分析,我们也就分三步来实现,然后每一步就是简单的运算了,包括单位换算和除法运算。
第一步:x英尺x英寸(用户输入的) -> x英寸 -> x米(1英寸=0.0254米)
int inchs = inch + feet * c;
double meter = inchs * m;
第二步:x磅(用户输入的) -> x千克(1千克=2.2磅)
double kg = weight / 2.2;
第三步:BMI = x千克 / x米的平方 即 BMI = x千克 / (x米*x米)
double BMI = kg / (meter*meter);

    最终完整的代码如下:

#include <iostream>
using namespace std;
int main()
{
    const int c = 12;//一英尺=12英寸
    const double m = 0.0254;//一英寸=0.0254米
    const double p = 2.2;//一千克 = 2.2磅
    int feet, inch,weight;
    cout << "输入自己的身高英尺数:";
    cin >> feet;
    cout << "输入自己的身高英尺数外的英寸数:";
    cin >> inch;
    cout << "输入自己的体重(磅为单位):";
    cin >> weight;

    int inchs = inch + feet * c;
    double meter = inchs * m;

    double kg = weight / 2.2;

    double BMI = kg / (meter*meter);

    cout << "您的BMI为:" << BMI << endl;

    return 0;
}