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