目录
#include<stdio.h>
int main(void)
{
double a;
while( scanf("%lf",&a) != EOF )
{
printf("%f\n",a);
printf("%g\n",a);
printf("%e\n",a);
printf("\n\n");
}
return 0;
}
一.简述
1.%f 表示:十进制浮点数
2.%g 表示:默认为保留六位有效数字输出,如果小数部分存在后缀 00,不要输出后缀 00。
3.%e 表示:以指数形式输出实数。如:1.234568e+009 表示 1234567890(e+009表示10的9次方)。
二.举例
输入 | %f | %g | %e |
0.00 | 0.000000 | 0 | 0.000000e+000 |
24.12456 | 24.124560 | 24.1246 | 2.412456e+001 |
12345678.12345678 | 12345678.123457 | 1.23457e+007 | 1.234568e+007 |
0.1234567 | 0.123457 | 0.123457 | 1.234567e-001 |
12300000.23546 | 12300000.235460 | 1.23e+007 | 1.230000e+007 |
观察得到,
%f、%g、%e都会在精度的下一位四舍五入;
%g 会自动选择合适的表示法输出(%f或%e),但其的精度一直是6位有效数字,除非这6位有效数字的末尾有0,它会省略0;
三.P5714 【深基3.例7】肥胖问题
题目描述
BMI 指数是国际上常用的衡量人体胖瘦程度的一个标准,其算法是 m/h^2(40\le m \le 120, 1.4 \le h \le 2.0)m/h2(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。
输入格式
共一行。
第一行,共 22 个整数,m,nm,n,分别表示体重(单位为 kgkg),身高(单位为 mm)。
输出格式
无
输入输出样例
输入 #1
70 1.72
输出 #1
Normal
说明/提示
m 和 h 均不超过 3 位小数
#include<stdio.h>
int main(void)
{
double x,m,h;
double t;
scanf("%lf %lf",&m,&h);
x = m / (h * h);
if( x < 18.5 )
{
printf("Underweight");
}
else if( x >= 18.5 && x < 24)
{
printf("Normal");
}
else
{
printf("%g\n",x);
printf("Overweight");
}
return 0;
}