一级
C++ 算法考级专栏
真题分析、矩阵探测、递归回溯与基础语法
🎨 视觉封面【GESP】C++一级练习 luogu-B2090, 年龄与疾病
📅 2024-11-18·✍️ OneCoder·计算中...·⏱️ 5 分钟
#GESP#C++#基础语句
一级综合练习,在一级题目中应该属于小有难度的。
luogu-B2090
题目要求
描述
某医院进行一项研究,想知道某项疾病是否与年龄有关。因此对以往的诊断记录进行整理,统计 0-18 、 19-35 、 36-60、 61 及以上这四个年龄段的患者人数占总患者人数的比例。
输入
输入共有 2 行。
第一行包含一个整数 (),表示总患者人数。
第二行包含 个整数,代表这 个患者就诊时的年龄。
输出
输出共4行。
第1行包含一个百分数,这个百分数保留小数点后2位,代表0-18岁这个年龄段的患者人数占总患者人数的比例。
第2行包含一个百分数,这个百分数保留小数点后2位,代表19-35岁这个年龄段的患者人数占总患者人数的比例。
第3行包含一个百分数,这个百分数保留小数点后2位,代表36-60岁这个年龄段的患者人数占总患者人数的比例。
第4行包含一个百分数,这个百分数保留小数点后2位,代表61岁及以上这个年龄段的患者人数占总患者人数的比例。
输入样例-1
10
1 11 21 31 41 51 61 71 81 91
输出样例-1
20.00%
20.00%
20.00%
40.00%
输入样例-2
12
10 19 86 94 58 57 34 19 88 69 5 13
输出样例-2
25.00%
25.00%
16.67%
33.33%
题目分析
- 读取总患者人数的值
- 初始化四个变量,用于统计不同年龄段的患者人数
- 在每次循环中,读取当前患者的年龄,并根据年龄段统计患者人数
- 输出不同年龄段的患者人数占总患者人数的百分比,保留到小数点后2位
示例代码
C++
25 行
#include <cstdio>
int main() {
int n; // 定义整数n,用于存储输入的患者人数
scanf("%d", &n); // 从输入流中读取n的值
double a; // 定义浮点数a,用于存储每个患者的年龄
double ans = 0, bns = 0, cns = 0, dns = 0; // 初始化四个变量,用于统计不同年龄段的患者人数
for (int i = 1; i <= n; i++) { // 循环n次,处理每个患者的信息
scanf("%lf", &a); // 从输入流中读取当前患者的年龄
if (a > 0 && a <= 18) { // 如果年龄在0到18岁之间
ans += 1; // 统计0-18岁年龄段的患者人数
} else if (a >= 19 && a <= 35) { // 如果年龄在19到35岁之间
bns += 1; // 统计19-35岁年龄段的患者人数
} else if (a >= 36 && a <= 60) { // 如果年龄在36到60岁之间
cns += 1; // 统计36-60岁年龄段的患者人数
}
if (a > 60) { // 如果年龄大于60岁
dns += 1; // 统计61岁及以上年龄段的患者人数
}
}
// 输出不同年龄段的患者人数占总患者人数的百分比,保留小数点后2位
printf("%.2f%%\n%.2f%%\n%.2f%%\n%.2f%%", (ans / n * 100), (bns / n * 100),
(cns / n * 100), (dns / n * 100));
return 0;
}
💡 OneCoder 资源指引
所有代码开源上传至 GitHub:yummy-code 仓库 · GESP 专题站:GESP WIKI
🤝 技术交流与答疑
欢迎加入:C++ GESP/CSP 考级答疑群(688906745) 与 Java/Python交流群(982860385),点击可直接加群。
📚
猜你想读 · 相关文章推荐
OneCoder (lihongzheshuai)
一个中年人的自留地,记录学习 C++、GESP/NOI、Java、Python 与算法架构的心得体会。本站唯一网址:coderli.com
读者讨论与留言
💬 还没有读者留言,快来成为第一个讨论者吧!