定義輸出小數位數的用法及例題(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;
}