题目描述
某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理,按照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
样例输出
2 20.00%
2 20.00%
2 20.00%
4 40.00%
分析
只需循环判断,再输出
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a[101],s[4]={0};
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
if(a[i]>=0&&a[i]<=18){
s[1]++;
}
if(a[i]>=19&&a[i]<=35){
s[2]++;
}
if(a[i]>=36&&a[i]<=60){
s[3]++;
}
}
s[4]=n-s[1]-s[2]-s[3];
cout<<s[1]<<" ";
printf("%.2lf",s[1]*1.0/n*100);
cout<<"%"<<endl;
cout<<s[2]<<" ";
printf("%.2lf",s[2]*1.0/n*100);
cout<<"%"<<endl;
cout<<s[3]<<" ";
printf("%.2lf",s[3]*1.0/n*100);
cout<<"%"<<endl;
cout<<s[4]<<" ";
printf("%.2lf",s[4]*1.0/n*100);
cout<<"%";
return 0;
}
或者,呃...
这样作:
都是可以的