天天看点

定义输出小数位数的用法及例题(C++)

定义输出小数位数的用法及例题(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;
}
           

继续阅读