C语言if语句和switch语句怎么同时使用啊

默认分类 未结 1 1343
_suudjdjd
_suudjdjd 2023-03-20 21:48
相关标签:
1条回答
  • 2023-03-20 22:20

    判断使用哪个标准(国标、亚洲或中国)用switch,判断胖瘦用if,就是点到点用switch,区间到点用if追问没错,我知道啊。能把这题的答案写一下吗,谢谢。

    追答#includeint main(){const char *pMsg[]= {"偏瘦","正常","超重","偏胖","肥胖","重度肥胖","极重度肥胖"};enum{WTO_Standard = 0, /*国际*/Asia_Standard = 1, /*亚洲*/China_Standard = 2 /*中国*/} BIM_Standard;int nStandard=0; /*分类标准*/float fHeight=0, fWeight=0; /*身高,体重*/scanf("%f %f %d",&fHeight,&fWeight,&nStandard);/*输入身高(m),体重(KG),分类标准*/float fBMI=fWeight/fHeight;/*计算体重指数BMI(Body Mass Index)公式:体重(KG)/身高(米)*/switch(nStandard){case WTO_Standard:if(fBMI<18.5){puts(pMsg[0]);}else if(fBMI<24.9){puts(pMsg[1]);}else if(fBMI==25){puts(pMsg[2]);}else if(fBMI<29.9){puts(pMsg[3]);}else if(fBMI<34.9){puts(pMsg[4]);}else if(fBMI<39.9){puts(pMsg[5]);}else{puts(pMsg[6]);}break;case Asia_Standard:if(fBMI<18.5){puts(pMsg[0]);}else if(fBMI<22.9){puts(pMsg[1]);}else if(fBMI==23){puts(pMsg[2]);}else if(fBMI<24.9){puts(pMsg[3]);}else if(fBMI<29.9){puts(pMsg[4]);}else{puts(pMsg[5]);}break;case China_Standard:if(fBMI<18.5){puts(pMsg[0]);}else if(fBMI<23.9){puts(pMsg[1]);}else if(fBMI==24){puts(pMsg[2]);}else if(fBMI<26.9){puts(pMsg[3]);}else if(fBMI<29.9){puts(pMsg[4]);}else{puts(pMsg[5]);}break;default:break;}return 0;}

    点对点的判断用switch,区间判断用if

    0 讨论(0)
提交回复