cout输出时的格式控制

//某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理,按照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<cmath>
#include<cstdio>
#include<iomanip>
#include<bitset>

using namespace std;
int a[10];

int main()
{
    int b,m=0,n=0,k=0,t=0;
    
    cin>>b;
    
    for(int i=0;i<10;i++)
    {
        cin>>a[i];
    }
    
    for(int j=0;j<10;j++)
    {
        if(a[j]>=0&&a[j]<=18)
            m++;
        if(a[j]>=19&&a[j]<=35)
            n++;
        if(a[j]>=36&&a[j]<=60)
            k++;
        if(a[j]>=61)
            t++;
    }
    
    printf("%.2lf\%\n",(double)m*100/(m+n+k+t));       //小数怎么转化为分数并且保留两位小数 
    printf("%.2lf\%\n",(double)n*100/(m+n+k+t));
    printf("%.2lf\%\n",(double)k*100/(m+n+k+t));
    printf("%.2lf\%\n",(double)t*100/(m+n+k+t));
    
    return 0;
}

参考主人的代码,太喜欢她了

#include <iostream> 
#include <cstdio> 
#include<math.h>
#include<iomanip>
using namespace std; 
int main() 
{
	int n,a[4],m;
	cin>>n;
	for(int i=0;i<4;i++)
	a[i]=0;
	
	for(int i=0;i<n;i++)
	    {
	    	cin>>m;
	    	if(m<19&&m>=0)
	    	  a[0]++;
	    	else if(m<36)
			  a[1]++;
			  else if(m<61)
			  a[2]++;
			  else
			  a[3]++;  
		}
		 



    for(int i=0;i<4;i++)	   
	   {
	   	cout.setf(ios::fixed);   
        cout<<setprecision(2)<<(float)(a[i]*100)/n<<"%"<<endl;	   
	   }
}

猜你喜欢

转载自blog.csdn.net/LVT18171910/article/details/81412875