BMI指数(英文为Body Mass Index,简称BMI),是用体重千克数除以身高米数的平方得出的数字,是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。当我们需要比较及分析一个人的体重对于不同高度的人所带来的健康影响时,BMI值是一个中立而可靠的指标。---选自《快懂百科》
中国参考标准BMI的数值一共分为6个级别,在代码中我们使用以下6个宏定义常量来表示,数值范围从-1至4,0表示正常范围。
图1
主函数main使用一个while循环支持用户连续输入身高和体重值进行多次计算,身高值采用米为单位,体重值采用千克为单位。用户按照提示输入身高和体重之后,使用下面的公式进行BMI的值。
BMI = 身高 / (体重的平方值)
图2
图2代码第24行和第28行分别定义了表示身高和体重的浮点型变量,代码使用scanf依次读取用户输入的数值,并将对应的值赋给height和weight变量。代码第32行计算得到bmi的数值。第32行代码调用getWeightGroup函数获取BMI分类常量值,第35行代码则使用这个BMI分类常量显示BMI对应的分类名称。
函数getWeithGroup根据BMI中国参考标准对传入的参数bmi值进行分类,从而转换为图1代码中对应的常量数值。显示健康信息函数displayHealthInfo根据对应的BMI分类打印对应的描述信息。
图3
图3代码使用了一个if…else…语句,一共含有6个分支语句分别判断bmi的数值是否位于对应的BMI分类的数值区间中,所有的数值通过6个分支完成向图1中BMI分类数值的转换。
图4
图4代码使用了另一个分支语句switch语句,这个分支语句同样是判断6种不同的BMI分类值,这些数值都是整型常量,可以作为case的判定表达式(代码第65、68、71、74、77、80行),如果所传入的参数值weightGroup变量与case分支中的某一项匹配,则执行case分支语句,将info变量进行赋值相应的字符串,第87行代码执行输出info变量,完成健康信息的显示功能。
,