设计一个学生健康信息管理系统,定义一个 `Student`结构体用于存放学生的姓名、身高和体重。请编写一个函数 `HealthyStudents`,它接受一个 `Student` 结构体的数组和数组长度作为参数,并输出身高,体重均大于平均值的学生的人数,姓名,身高和体重 c语言
时间: 2024-10-10 20:09:57 浏览: 22
在 C 语言中,设计一个学生健康信息管理系统并实现`HealthyStudents`函数可以这样操作:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义 Student 结构体
typedef struct {
char name[50];
float height;
float weight;
} Student;
// 计算学生数组的平均身高和体重
float calculate_average(const Student* students, int length) {
float total_height = 0.0f, total_weight = 0.0f;
for (int i = 0; i < length; i++) {
total_height += students[i].height;
total_weight += students[i].weight;
}
return (total_height + total_weight) / length;
}
// 函数 HealthyStudents,找出健康学生并输出相关信息
void HealthyStudents(Student* students, int length) {
float avg_height = calculate_average(students, length);
float avg_weight = calculate_average(&students->weight, length); // 注意这里是按体重计算平均
int count = 0;
for (int i = 0; i < length; i++) {
if (students[i].height > avg_height && students[i].weight > avg_weight) {
printf("学生姓名: %s\n", students[i].name);
printf("身高: %.2f cm\n", students[i].height);
printf("体重: %.2f kg\n", students[i].weight);
count++;
}
}
printf("健康的学生活动人数: %d\n", count);
}
int main() {
// 示例学生数据
Student students[] = {
{"张三", 178, 65},
{"李四", 190, 80},
{"王五", 160, 50},
{"赵六", 185, 70}
};
int student_count = sizeof(students) / sizeof(students[0]);
HealthyStudents(students, student_count);
return 0;
}
阅读全文