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變量,完成健康信息的顯示功能。
,