已知数组b中存放N个人的年龄,编写程序,统计各年龄段的人数并存入数组d。要求把0至9岁年龄段的人数放在 d[0]中,把10 至 19 岁年龄段的人数放在d[1]中,把20 至 29 岁年龄段的人数放在 d[2]中,其余依此类推,把 10
时间: 2023-09-12 12:04:47 浏览: 190
### 回答1:
至 20 岁年龄段的人数放在 d[2]中。
以下是一个示例代码实现:
```c
#include <stdio.h>
#define MAX_N 1000 // 最大人数
#define MAX_AGE 120 // 最大年龄
int main() {
int b[MAX_N];
int d[MAX_AGE / 10 + 1] = {0}; // 年龄段数组,共 MAX_AGE/10+1 个元素
int n;
printf("请输入人数 n:");
scanf("%d", &n);
printf("请输入 %d 个人的年龄:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &b[i]);
}
// 统计各年龄段人数
for (int i = 0; i < n; i++) {
int age = b[i];
int index = age / 10;
d[index]++;
}
// 输出各年龄段人数
for (int i = 0; i < MAX_AGE / 10 + 1; i++) {
printf("%d 至 %d 岁年龄段的人数为:%d\n", i * 10, i * 10 + 9, d[i]);
}
return 0;
}
```
运行示例:
```
请输入人数 n:10
请输入 10 个人的年龄:9 15 23 45 78 89 19 31 27 12
0 至 9 岁年龄段的人数为:1
10 至 19 岁年龄段的人数为:2
20 至 29 岁年龄段的人数为:2
30 至 39 岁年龄段的人数为:1
40 至 49 岁年龄段的人数为:1
50 至 59 岁年龄段的人数为:0
60 至 69 岁年龄段的人数为:0
70 至 79 岁年龄段的人数为:1
80 至 89 岁年龄段的人数为:1
90 至 99 岁年龄段的人数为:1
100 至 109 岁年龄段的人数为:0
110 至 119 岁年龄段的人数为:0
```
### 回答2:
假设已经给定数组b和N的值。
首先,我们可以创建一个大小为10的数组d,用于存放各年龄段的人数。初始化d数组的元素为0。
然后,我们可以遍历数组b中的每个年龄,根据年龄的范围来增加对应年龄段的人数。
具体步骤如下:
1. 创建一个大小为10的整型数组d,并初始化所有元素为0。
2. 使用一个循环,遍历数组b中的所有年龄:
- 对于每个年龄,确定其所在的年龄段。
- 根据所在的年龄段,将对应d数组的元素加1。
- 例如,对于年龄20,其属于20至29岁年龄段,我们可以将d[2]的值加1。
3. 循环结束后,数组d中存储了各年龄段的人数。
以下是通过C++代码来实现上述算法:
```cpp
#include <iostream>
using namespace std;
const int AGE_RANGE = 10;
void countAgeGroup(int b[], int n, int d[]) {
for (int i = 0; i < n; i++) {
int age = b[i];
int ageGroup = age / AGE_RANGE;
d[ageGroup]++;
}
}
int main() {
int N = 10; // N为人数
int b[] = { 4, 12, 23, 34, 45, 56, 67, 78, 89, 90 }; // 年龄数组b
int d[AGE_RANGE] = { 0 }; // 存储各年龄段人数的数组d
countAgeGroup(b, N, d); // 调用函数统计年龄段人数
// 输出各年龄段的人数
for (int i = 0; i < AGE_RANGE; i++) {
cout << "年龄段 " << (i * AGE_RANGE) << " 至 " << ((i + 1) * AGE_RANGE - 1) << " 的人数:" << d[i] << endl;
}
return 0;
}
```
该代码首先创建了一个名为N的变量来表示人数,然后创建了一个名为b的数组来表示年龄。接着,定义了一个大小为AGE_RANGE(本例中为10)的常量来表示年龄段的数量。最后初始化d数组,调用countAgeGroup函数统计各年龄段的人数,并输出结果。
注意:如果年龄的范围超过了AGE_RANGE * 10,则可能需要更复杂的解决方案来处理。
### 回答3:
以下是一个可能的实现:
```python
def count_age_group(b, N):
d = [0] * 10 # 初始化存放各年龄段人数的数组d
for age in b:
group = age // 10 # 计算年龄属于哪个年龄段
if group > 9: # 对于大于或等于10的年龄段,放入d[9]中
group = 9
d[group] += 1 # 对应年龄段的人数加一
return d
N = int(input("请输入人数: "))
b = []
for i in range(N):
age = int(input("请输入第{}个人的年龄: ".format(i + 1)))
b.append(age)
d = count_age_group(b, N)
print(d)
```
这个程序首先定义了一个名为`count_age_group`的函数,该函数接收数组`b`和人数`N`作为参数,并返回数组`d`,其中存放了各年龄段的人数。在主程序中,用户需要输入人数以及每个人的年龄。然后,数组`b`以及人数`N`将作为参数传递给`count_age_group`函数进行统计。最后,将结果数组`d`输出。
请注意,此程序假设输入的年龄都是非负整数。如果输入的年龄有负数或者不是整数的话,需要加入相应的错误处理。
阅读全文