定义输出小数位数的用法及例题(C++)
对于算法题目来说,有时候不同的输出格式会减分,而对于不会掌握输出小数的方法来说,实在是一种困惑。所以掌握setprecision的用法是有必要的。
在使用setprecision的用法前,需要包含头文件#include"iomanip"
而在实战中需要加上fixed,用于固定几位小数输出,下面看例题。
问题描述
生理卫生老师在课堂上娓娓道来:你能看见你未来的样子吗?显然不能。但你能预测自己成年后的身高,有公式:
男孩成人后身高=(父亲身高+母亲身高)/2 * 1.08
女孩成人后身高=(父亲身高*0.923+母亲身高)/2
数学老师听见了,回头说:这是大样本统计拟合公式,准确性不错。
生物老师听见了,回头说:结果不是绝对的,影响身高的因素很多,比如营养、疾病、体育锻炼、睡眠、情绪、环境因素等。老师们齐回头,看见同学们都正在预测自己的身高。毛老师见此情形,推推眼镜说:何必手算,编程又快又简单…
约定:身高的单位用米表示,所以自然是会有小数的。
男性用整数1表示,女性用整数0表示。预测的身高保留三位小数
输入格式
用空格分开的三个数,整数 小数 小数
分别表示:性别 父亲身高 母亲身高
输出格式
一个小数,表示根据上述表示预测的身高(保留三位小数)
样例输入
1 1.91 1.70
样例输出
1.949
样例输入
0 1.00 2.077
样例输出
1.500
数据规模和约定
父母身高范围(0,3]
时间限制1.0秒
#include <iostream>
#include <iomanip> //引入setprecision的头文件
using namespace std;
int main()
{
char n;
double x,y,num=0;
cin>>n>>x>>y;
if(n=='1')
{
num=(x+y)*0.5*1.08;
cout<<fixed<<setprecision(3)<<num;//定义输出三位小数
}
else if(n=='0')
{
num=(x*0.923+y)*0.5;
cout<<fixed<<setprecision(3)<<num;
}
return 0;
}