设计一个学生健康信息管理系统,定义一个 `Student`结构体用于存放学生的姓名、身高和体重。请编写一个函数 `HealthyStudents`,它接受一个 `Student` 结构体的数组和数组长度作为参数,并输出身高,体重均大于平均值的学生的人数,姓名,身高和体重。
时间: 2024-09-22 13:10:01 浏览: 56
设计一个学生健康信息管理系统,我们可以创建一个名为`Student`的结构体,包含姓名(`name`)、身高(`height`)和体重(`weight`)三个字段。然后,我们需要计算所有学生的平均身高和体重,找出哪些学生的数据大于这个平均值。以下是用Go语言实现的一个例子:
```go
package main
type Student struct {
name string
height float64
weight float64
}
func calculateAverage(students []Student) (float64, float64) {
totalHeight := 0.0
totalWeight := 0.0
for _, student := range students {
totalHeight += student.height
totalWeight += student.weight
}
averageHeight := totalHeight / float64(len(students))
averageWeight := totalWeight / float64(len(students))
return averageHeight, averageWeight
}
func HealthyStudents(students []Student, length int) {
avgHeight, avgWeight := calculateAverage(students)
var healthyCount int
var healthyStudents []string
for i := 0; i < length; i++ {
if students[i].height > avgHeight && students[i].weight > avgWeight {
healthyCount++
healthyStudents = append(healthyStudents, fmt.Sprintf("%s (%.2f cm, %.2f kg)", students[i].name, students[i].height, students[i].weight))
}
}
fmt.Printf("有%.0f位学生的身高和体重均高于平均值:\n", healthyCount)
for _, student := range healthyStudents {
fmt.Println(student)
}
}
// 示例
func main() {
students := []Student{
{"张三", 180.5, 70.0},
{"李四", 170.0, 60.5},
{"王五", 190.0, 80.0},
}
HealthyStudents(students, len(students))
}
```
在这个示例中,`HealthyStudents`函数首先计算学生的平均身高和体重,然后遍历学生列表,检查每位学生的身高和体重是否都超过平均值,如果是,则统计人数并保存其信息。
阅读全文