设计一个学生健康信息管理系统,定义一个 `Student`结构体用于存放学生的姓名、身高和体重。请编写一个函数 `HealthyStudents`,它接受一个 `Student` 结构体的数组和数组长度作为参数,并输出身高,体重均大于平均值的学生的人数,姓名,身高和体重。 c语言
时间: 2024-10-07 15:01:34 浏览: 26
设计一个学生健康信息管理系统,你可以创建一个名为`Student`的结构体,包含姓名(char*)、身高(float)和体重(float)三个字段。然后定义一个函数`HealthyStudents`来计算并返回满足条件的学生列表。以下是基本的代码实现:
```c
#include <stdio.h>
#include <string.h>
// 定义 Student 结构体
typedef struct {
char name[50];
float height;
float weight;
} Student;
// 计算数组元素的平均值
float average(float arr[], int n) {
float sum = 0;
for (int i = 0; i < n; i++) {
sum += arr[i];
}
return sum / n;
}
// 检查学生是否健康并输出相关信息
void HealthyStudents(Student students[], int length) {
float avgHeight = average(&students[0].height, length);
float avgWeight = average(&students[0].weight, length);
int healthyCount = 0;
printf("健康的学生活动人数:");
for (int i = 0; i < length; i++) {
if (students[i].height > avgHeight && students[i].weight > avgWeight) {
printf("%d. %s, 身高:%.2f米, 体重:%.2f公斤\n", healthyCount++, students[i].name, students[i].height, students[i].weight);
}
}
}
int main() {
// 示例学生数据
Student students[] = {{"Tom", 180, 70}, {"Jerry", 165, 60}, {"Spike", 190, 85}};
int numStudents = sizeof(students) / sizeof(students[0]);
HealthyStudents(students, numStudents);
return 0;
}
```
在这个例子中,我们首先计算了所有学生的平均身高和体重,然后遍历数组,对每个学生的身高和体重进行比较,如果都大于平均值,则记录这个学生的信息。
阅读全文