本文共 6452 字,大约阅读时间需要 21 分钟。
#include"BFR.h"#include"stdio.h"#includedouble BfrFemaleLimits18_39[] = { 5.0, 20.5, 34.5, 39.5, 45.01 };double BfrFemaleLimits40_59[] = { 5.0, 21.5, 35.5, 40.5, 45.01 };double BfrFemaleLimits60[] = { 5.0, 22.5, 36.5, 41.5, 45.01 };double BfrMaleLimits18_39[] = { 5.0, 10.5, 21.5, 26.5, 45.01 };double BfrMaleLimits40_59[] = { 5.0, 11.5, 22.5, 27.5, 45.01 };double BfrMaleLimits60[] = { 5.0, 13.5, 24.5, 29.5, 45.01 };char *Result[] = { "Thin", "Normal", "Overweight", "Fat", "Illegal" }; int AgeLimits[] = { 18, 40, 60, 81 };float Get_height(void){ float Height = 0.0; printf("Enter a people's Height:"); scanf_s("%f", &Height); if ((HEIGHT_MIN >= Height) && (Height >= HEIGHT_MAX)) { printf("Error within height\n"); } else { printf("Height=%.2f m\n", Height); } return Height;}float Get_weight(void){ float Weight = 0.0; printf("Enter a people's Weight:"); scanf_s("%f", &Weight); if ((WEIGHT_MIN >= Weight) && (WEIGHT_MAX >= Weight)) { printf("Error within weight\n"); } else { printf("weight=%.3f kg\n", Weight); } return Weight;}int Get_age(void){ int Age = 0; printf("Enter a people's Age:"); scanf_s("%d", &Age); if ((AGE_MIN >= Age) && (AGE_MAX <= Age)) { printf("Error within Age\n"); } else { printf("age=%d\n", Age); } return Age;}int Judge_sex(void){ //0表示女,1表示男 int Sex=0; printf("Enter a people's Sex:"); scanf_s("%d", &Sex); if ((0 == Sex) || (1 == Sex)) ; else { printf("Error in sex,please input again\n"); } return Sex;}void JudgeFemaleBfr(double Bfr, int Age){ int AgeIndex = 0; int BfrIndex = 0; int ResultFlag = 0; if (Age < AgeLimits[0]) { ResultFlag = 4; } if ((Age >= AgeLimits[0]) && (Age < AgeLimits[1])) { if (Bfr < BfrFemaleLimits18_39[0]) { ResultFlag = 4; } if ((Bfr >= BfrFemaleLimits18_39[0]) && (Bfr < BfrFemaleLimits18_39[1])) { ResultFlag = 0; } if ((Bfr >= BfrFemaleLimits18_39[1]) && (Bfr < BfrFemaleLimits18_39[2])) { ResultFlag = 1; } if ((Bfr >= BfrFemaleLimits18_39[2]) && (Bfr < BfrFemaleLimits18_39[3])) { ResultFlag = 2; } if ((Bfr >= BfrFemaleLimits18_39[3]) && (Bfr < BfrFemaleLimits18_39[4])) { ResultFlag = 3; } if ((Bfr >= BfrFemaleLimits18_39[4])) { ResultFlag = 4; } } if ((Age >= AgeLimits[1]) && (Age < AgeLimits[2])) { if (Bfr < BfrFemaleLimits40_59[0]) { ResultFlag = 4; } else if ((BfrFemaleLimits40_59[0] <= Bfr) && (Bfr < BfrFemaleLimits40_59[1])) { ResultFlag = 0; } else if ((BfrFemaleLimits40_59[1] <= Bfr) && (Bfr < BfrFemaleLimits40_59[2])) { ResultFlag = 1; } else if ((BfrFemaleLimits40_59[2] <= Bfr) && (Bfr < BfrFemaleLimits40_59[3])) { ResultFlag = 2; } else if ((BfrFemaleLimits40_59[3] <= Bfr) && (Bfr < BfrFemaleLimits40_59[4])) { ResultFlag = 3; } else { ResultFlag = 4; } return; } if ((Age >= AgeLimits[2]) && (Age < AgeLimits[3])) { if (Bfr < BfrFemaleLimits60[0]) { ResultFlag = 4; } else if ((BfrFemaleLimits60[0] <= Bfr) && (Bfr < BfrFemaleLimits60[1])) { ResultFlag = 0; } else if ((BfrFemaleLimits60[1] <= Bfr) && (Bfr < BfrFemaleLimits60[2])) { ResultFlag = 1; } else if ((BfrFemaleLimits60[2] <= Bfr) && (Bfr < BfrFemaleLimits60[3])) { ResultFlag = 2; } else if ((BfrFemaleLimits60[3] <= Bfr) && (Bfr < BfrFemaleLimits60[4])) { ResultFlag = 3; } else { ResultFlag = 4; } switch (ResultFlag) { case 0: printf("result = %s \n", Result[ResultFlag]); break; case 1: printf("result = %s \n", Result[ResultFlag]); break; case 2: printf("result = %s \n", Result[ResultFlag]); break; case 3: printf("result = %s \n",Result[ResultFlag]); break; default: printf("ERROR!result = %s\n", Result[4]); } return; } if (Age >= AgeLimits[3]) { ResultFlag = 4; } return;}void JudgeMaleBfr(double Bfr, int Age){ int AgeIndex = 0; int BfrIndex = 0; int ResultFlag = 0; if (Age < AgeLimits[0]) { ResultFlag = 4; } if ((Age >= AgeLimits[0]) && (Age < AgeLimits[1])) { if (Bfr < BfrMaleLimits18_39[0]) { ResultFlag = 4; } if ((Bfr >= BfrMaleLimits18_39[0]) && (Bfr < BfrMaleLimits18_39[1])) { ResultFlag = 0; } if ((Bfr >= BfrMaleLimits18_39[1]) && (Bfr < BfrMaleLimits18_39[2])) { ResultFlag = 1; } if ((Bfr >= BfrMaleLimits18_39[2]) && (Bfr < BfrMaleLimits18_39[3])) { ResultFlag = 2; } if ((Bfr >= BfrMaleLimits18_39[3]) && (Bfr < BfrMaleLimits18_39[4])) { ResultFlag = 3; } if ((Bfr >= BfrMaleLimits18_39[4])) { ResultFlag = 4; } } if ((Age >= AgeLimits[1]) && (Age < AgeLimits[2])) { if (Bfr < BfrMaleLimits40_59[0]) { ResultFlag = 4; } else if ((BfrMaleLimits40_59[0] <= Bfr) && (Bfr < BfrMaleLimits40_59[1])) { ResultFlag = 0; } else if ((BfrMaleLimits40_59[1] <= Bfr) && (Bfr < BfrMaleLimits40_59[2])) { ResultFlag = 1; } else if ((BfrMaleLimits40_59[2] <= Bfr) && (Bfr < BfrMaleLimits40_59[3])) { ResultFlag = 2; } else if ((BfrMaleLimits40_59[3] <= Bfr) && (Bfr < BfrMaleLimits40_59[4])) { ResultFlag = 3; } else { ResultFlag = 4; } return; } if ((Age >= AgeLimits[2]) && (Age < AgeLimits[3])) { if (Bfr < BfrMaleLimits60[0]) { ResultFlag = 4; } else if ((BfrMaleLimits60[0] <= Bfr) && (Bfr < BfrMaleLimits60[1])) { ResultFlag = 0; } else if ((BfrMaleLimits60[1] <= Bfr) && (Bfr < BfrMaleLimits60[2])) { ResultFlag = 1; } else if ((BfrMaleLimits60[2] <= Bfr) && (Bfr = AgeLimits[3]) { ResultFlag = 4; } return;}
#ifndef _BFR_H_ #define _BFR_H_ #include#define BMI(Weight,Height) ((Weight) / ((Height)*(Height)))#define BFR(Bmi,Age,Sex) (1.2*(Bmi)+0.23*(Age)-5.4-10.8*(Sex))#define HEIGHT_MAX (2.8)#define HEIGHT_MIN (0.56)#define WEIGHT_MAX (330.0)#define WEIGHT_MIN (2.12)#define AGE_MAX (80)#define AGE_MIN (18)float Get_height(void);float Get_weight(void);int Get_age(void);int Judge_sex(void);void JudgeFemaleBfr(double Bfr, int Age);void JudgeMaleBfr(double Bfr, int Age);#endif
#include"BFR.h"#include#include"windows.h"int main(){ //采集信息:身高,体重,年龄和性别 float Height = 0.0; float Weight = 0.0; int Age = 0; int Sex = 0; double Bmi = 0.0; double Bfr = 0.0; Height = Get_height(); Weight = Get_weight(); Age = Get_age(); Sex = Judge_sex(); /*printf("Height=%.2f m\n", Height); printf("weight=%.3f kg\n", Weight); printf("age=%d\n", Age);*/ printf("Sex=%s\n", Sex == 0 ? "famale" : "male"); //计算Bmi Bmi = BMI(Weight,Height); //计算Bfr Bfr = BFR(Bmi, Age, Sex); printf("Bmi=%.2f \n", Bmi); printf("Bfr=%.2f \n", Bfr); //判断Bfr if (Sex == 0) { JudgeFemaleBfr(Bfr, Age); } else { JudgeMaleBfr(Bfr, Age); } system("pause"); return 0;}
转载地址:http://rqypi.baihongyu.com/