这个问题首先要找到16~31之间的人,然后统计每一个年龄端的人数放到一个数组里面
逻辑代码
#include <stdio.h>
int main()
{
int a[30],i ,age,n;
for(i=0;i<30;i++) a[i]=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&age);a[age-16]++
}
for(i=16;i<32;i++)
{
printf("%d %d\n",i,a[i-16]);
}
return 0;
}
这里有一个巧妙的地方那就是a[age-16]++这里是用来统计满足年龄是16~31岁每一个年龄段人的个数,比如年龄是17,就是a[1]=1,因为前面已经把数组a初始化成0了,就是a[17-16]=0+1;如此统计了17岁人的个数,两17岁就是2;
后面的输出的否循环则是为a[age-16]准备的,i=16时,这里的i表示年龄,a[i-16]表示的是在i这个年龄的人数