轉載:https://blog.csdn.net/qq_45974279/article/details/104241375
以下幾種控制格式符的標頭檔案為:
#include <iomanip>
1.輸出保留小數點後幾位
cout<<setiosflags(ios::fixed)<<setprecision(n);
//保留幾位n就是幾
- 1
2.保留n位有效數字
cout << setprecision(n);
//保留幾位n就是幾
- 1
3.設定輸出寬度為n
cout<<setw(n);
//寬度為n
- 1
舉個例子
輸出浮點數7.5612,設定輸出寬度為10,輸出精度為4(小數點後保留3位有效數字或者保留4位有效數字)並換行
cout<<setw(10)<<setprecision(4)<<7.5612<<endl;
再舉個題目為例
【題目描述】
某醫院想統計一下某項疾病的獲得與否與年齡是否有關,需要對以前的診斷記錄進行整理,按照0-18、19-35、36-60、61以上(含61)四個年齡段統計的患病人數佔總患病人數的比例。
【輸入】
共2行,第一行為過往病人的數目n(0<n≤100),第二行為每個病人患病時的年齡。
【輸出】
按照0-18、19-35、36-60、61以上(含61)四個年齡段輸出該段患病人數佔總患病人數的比例,以百分比的形式輸出,精確到小數點後兩位。每個年齡段佔一行,共四行。
【輸入樣例】
10
1 11 21 31 41 51 61 71 81 91
【輸出樣例】
20.00%
20.00%
20.00%
40.00%
程式碼如下
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int i,n,a[100];
double b[4]={0,0,0,0};
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<n;i++)
{
if(a[i]>=0&&a[i]<=18)b[0]++;
if(a[i]>=19&&a[i]<=35)b[1]++;
if(a[i]>=36&&a[i]<=60)b[2]++;
if(a[i]>=61)b[3]++;
}
cout<<setiosflags(ios::fixed)<<setprecision(2);
for(i=0;i<4;i++)
{
b[i]=b[i]*100.0/n;
cout<<b[i]<<"%"<<endl;
}
return 0;
}