天天看點

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

繼續閱讀