以下几种控制格式符的头文件为:
#include <iomanip>
1.输出保留小数点后几位
cout<<setiosflags(ios::fixed)<<setprecision(n);
//保留几位n就是几
2.保留n位有效数字
cout << setprecision(n);
//保留几位n就是几
3.设置输出宽度为n
cout<<setw(n);
//宽度为n
举个例子
输出浮点数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;
}