用C语言完成:用一个结构体数组记录一个家族的人口状况。每个数组元素包含两个成员,一个是年龄(整型数组,要求从键盘输出)另外的是年龄段(小于35是青年,大于60是老年,其余是中年此成员是枚举类型,按照输入的年龄赋值)要求按照年龄大小输出该结构体数组的全部成员,假设数组有十个元素
时间: 2024-02-01 09:16:49 浏览: 32
以下是用 C 语言实现的代码:
```c
#include <stdio.h>
enum AgeGroup {
YOUTH,
MIDDLE_AGED,
ELDERLY
};
struct Person {
int age;
enum AgeGroup age_group;
};
int main() {
struct Person family[10];
int i;
printf("Please enter the age of 10 people in the family:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &family[i].age);
if (family[i].age < 35)
family[i].age_group = YOUTH;
else if (family[i].age > 60)
family[i].age_group = ELDERLY;
else
family[i].age_group = MIDDLE_AGED;
}
// Bubble sort by age
for (i = 0; i < 10 - 1; i++) {
int j;
for (j = 0; j < 10 - i - 1; j++) {
if (family[j].age > family[j + 1].age) {
struct Person temp = family[j];
family[j] = family[j + 1];
family[j + 1] = temp;
}
}
}
printf("The order of family members by age is:\n");
for (i = 0; i < 10; i++) {
printf("Age: %d, Age Group: ", family[i].age);
switch (family[i].age_group) {
case YOUTH:
printf("Youth\n");
break;
case MIDDLE_AGED:
printf("Middle-aged\n");
break;
case ELDERLY:
printf("Elderly\n");
break;
}
}
return 0;
}
```
该程序首先从键盘输入 10 个人的年龄,并根据年龄判断他们的年龄段,然后使用冒泡排序算法按照年龄从小到大对结构体数组进行排序,并输出排序结果。