1106:年龄与疾病
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 47372 通过数: 25284
【题目描述】
某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理,按照0-18、19-35、36-60、61以上(含61)四个年龄段统计的患病人数占总患病人数的比例。
【输入】
共2行,第一行为过往病人的数目n(0<n<=100),第二行为每个病人患病时的年龄。
【输出】
按照0-18、19-35、36-60、61以上(含61)四个年龄段输出该段患病人数占总患病人数的比例,以百分比的形式输出,精确到小数点后两位。每个年龄段占一行,共四行。
分析:输入数据后,直接遍历找出相应的人数即可。
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
#include<array>
using std::array;
#include<iomanip>
using std::fixed;
using std::setprecision;
int main()
{
int n = 0;
cin >> n;
array<int, 100>arr;//这里改成 int arr[100]对后面没影响
for (int i = 0; i < n; ++i)
{
cin >> arr[i];
}
int num_0_18 = 0, num_19_35 = 0, num_36_60 = 0, num_61_ = 0;
for (int i = 0; i < n;++i)
{
if (arr[i] >= 0 && arr[i] <= 18)
{
num_0_18++;
}
else if (arr[i] >= 19 && arr[i] <= 35)
{
num_19_35++;
}
else if (arr[i] >= 36 && arr[i] <= 60)
{
num_36_60++;
}
else
{
num_61_++;
}
}
double num1 = ((double)num_0_18) / n * 100,
num2 = ((double)num_19_35) / n * 100,
num3 = ((double)num_36_60) / n * 100,
num4 = ((double)num_61_) / n * 100;
cout << fixed << setprecision(2);
cout << num1 << "%" << endl;
cout << num2 << "%" << endl;
cout << num3 << "%" << endl;
cout << num4 << "%" << endl;
}