解题思路:
1.由题意得,需要输出每个年龄段的患病率,那么只需要将各个年龄段的患病人数除以总患病人数即可,因为这里涉及到四个年龄段,所以要设置4个变量来分别对于每个年龄段的人数进行计数
2.在main函数外定义一个符合要求的数组,输入格式有两行,第一行为n,代表患病人数,第二行为n个数代表年龄
3.利用循环将这n个数都存入到数组中,然后再创建一个循环,进行遍历,对于每一个元素的值用if语句判断,如果在哪个年龄阶段,对应的计数器+1,
4.最后对于四个计数器变量求值,因为涉及到小数点,所以我们要用类型转化,当然,也可以直接将计数器变量定义为double类型,然后用计数器分别去除以患病人数,得到结果
5.输出的时候,有点不同,规定输出是百分号形式的,我们直到0.01=1%,即要换算成百分号的话,要扩大100倍,所以第四步求出来结果的时候要乘100,然后按照要求输出,换行,百分号,保留两位小数
#include<bits/stdc++.h>
using namespace std;
int a[105]; //定义数组a
int main()
{
int n;
double suma=0,sumb=0,sumc=0,sumd=0;//分别计算四个年龄段的比例
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];//将n个数据依次输入
for(int i=1;i<=n;i++)
{
if(a[i]<=18)//分别开始判断
suma++;
else if(a[i]<=35)
sumb++;
else if(a[i]<=60)
sumc++;
else
sumd++;
}
suma=suma/n*100;//计算对应的比例
sumb=sumb/n*100;
sumc=sumc/n*100;
sumd=sumd/n*100;
printf("%.2lf%\n",suma);//保留两位小数输出
printf("%.2lf%\n",sumb);
printf("%.2lf%\n",sumc);
printf("%.2lf%\n",sumd);
return 0;
}