洛谷 P5714 【深基3.例7】肥胖问题:保留六位有效数字(c语言)
c语言中保留n位有效数字
- 若规定宽度为p,小数q位,用%p.qf输出
- 若规定整数+小数一共n位有效,用%.ng输出
题目描述:
BMI 指数是国际上常用的衡量人体胖瘦程度的一个标准,其算法是 m/h^2(40\le m \le 120, 1.4 \le h \le 2.0)m/h
2
(40≤m≤120,1.4≤h≤2.0),其中 mm 是指体重(千克),hh 是指身高(米)。不同体型范围与判定结果如下:
小于 18.5:体重过轻,输出 Underweight;
大于等于 18.5 且小于 24:正常体重,输出 Normal;
大于等于 24:肥胖,不仅要输出 BMI 值(使用 cout 的默认精度),然后换行,还要输出 Overweight;
现在给出体重和身高数据,需要根据 BMI 指数判断体型状态并输出对应的判断。
对于非 C++ 语言,在输出时,请四舍五入保留六位有效数字输出,如果小数部分存在后缀 00,不要输出后缀 00。
请注意,保留六位有效数字不是保留六位小数。例如 114.5149114.5149 应该输出为 114.515114.515,9198.109198.10 应该输出为 9198.19198.1。
输入输出样例
输入
70 1.72
输出
Normal
说明/提示
m 和 h 均不超过 3 位小数
源代码
#include <stdio.h>
int main()
{
double m,h;
m>=40&&m<=120;
h>=1.4&&h<=2.0;
scanf("%lf%lf",&m,&h);
if(m/(h*h)<18.5){
printf("Underweight");
}
else if(m/(h*h)>=24){
printf("%.6g\nOverweight\n",m/(h*h));
}else
{
printf("Normal") ;
}
return 0;
}