【题目链接】
ybt 1106:年龄与疾病
OpenJudge NOI 1.6 05:年龄与疾病
【题目考点】
1. 数组
2. 数组初始化为0的方法
- 将数组设为全局变量
- 如果数组是局部变量,可以这样写:
int a[100] = {};
- 使用memset函数。
int a[100]; memset(a, 0, sizeof(a));
【解题思路】
- 统计得到四个年龄段内的人数,存在一个数组中。最后遍历数组,输出每个年龄段的人数除以总人数得到的百分比值。
(这一题不用数组也能做。不过用数组代码更简短。)
【题解代码】
解法1:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n, age;
cin>>n;
int r[4] = {};//将数组r的每个元素初始化为0
for(int i = 0; i < n; ++i)
{
cin>>age;
if(age >= 0 && age <= 18)
r[0]++;
else if (age >= 19 && age <= 35)
r[1]++;
else if (age >= 36 && age <= 60)
r[2]++;
else
r[3]++;
}
for(int i = 0; i < 4; ++i)
cout<<fixed<<setprecision(2)<<(double)r[i] / n * 100<<'%'<<endl;;
return 0;
}