【题目来源】
洛谷:B2090 年龄与疾病 - 洛谷
【题目描述】
某医院进行一项研究,想知道某项疾病是否与年龄有关。因此对以往的诊断记录进行整理,统计 \(0-18\) 、 \(19-35\) 、 \(36-60\)、 \(61\) 及以上这四个年龄段的患者人数占总患者人数的比例。
【输入】
输入共 \(2\) 行。
第一行包含一个整数 \(N(0<n≤100)\),表示总患者人数。
第二行包含 \(N\) 个整数,代表这 \(N\) 个患者就诊时的年龄。
【输出】
输出共 \(4\) 行。
第 \(1\) 行包含一个百分数,这个百分数保留小数点后 \(2\) 位,代表 \(0−18\) 岁这个年龄段的患者人数占总患者人数的比例。
第 \(2\) 行包含一个百分数,这个百分数保留小数点后 \(2\) 位,代表 \(19−35\) 岁这个年龄段的患者人数占总患者人数的比例。
第 \(3\) 行包含一个百分数,这个百分数保留小数点后 \(2\) 位,代表 \(36−60\) 岁这个年龄段的患者人数占总患者人数的比例。
第 \(4\) 行包含一个百分数,这个百分数保留小数点后 \(2\) 位,代表 \(61\) 岁及以上这个年龄段的患者人数占总患者人数的比例。
【输入样例】
10
1 11 21 31 41 51 61 71 81 91
【输出样例】
20.00%
20.00%
20.00%
40.00%
【代码详解】
#include <bits/stdc++.h>
using namespace std;int n; // 输入的总人数
int t; // 临时存储输入的年龄
int b[1005] = {0}; // 统计各年龄出现次数的数组
int cnt; // 计数器,用于统计各年龄段人数int main()
{// 输入总人数cin >> n;// 输入每个人的年龄并统计for (int i = 1; i <= n; i++){cin >> t;b[t]++; // 对应年龄的计数器加1}// 统计18岁及以下的人数比例cnt = 0;for (int i = 0; i <= 18; i++){cnt += b[i]; // 累加该年龄段人数}printf("%.2lf%%\n", cnt * 100.0 / n); // 输出百分比(注意%%表示输出%)// 统计19-35岁的人数比例cnt = 0;for (int i = 19; i <= 35; i++){cnt += b[i];}printf("%.2lf%%\n", cnt * 100.0 / n);// 统计36-60岁的人数比例cnt = 0;for (int i = 36; i <= 60; i++){cnt += b[i];}printf("%.2lf%%\n", cnt * 100.0 / n);// 统计61岁及以上的人数比例cnt = 0;for (int i = 61; i <= 1000; i++){cnt += b[i];}printf("%.2lf%%\n", cnt * 100.0 / n);return 0;
}
【运行结果】
10
1 11 21 31 41 51 61 71 81 91
20.00%
20.00%
20.00%
40.00%
