请补充以下程序:从键盘输入5位学生的身高、体重及姓名 并存放在一个结构体数组中,从中查找出身高最高和体 重最重的学生的姓名、身高和体重。
时间: 2025-06-11 15:00:22 AIGC 浏览: 25
首先,我们需要创建一个结构体来存储学生的信息,然后读取用户输入,将数据存储到数组中。接下来,我们将遍历数组找出最高身高和最重体重的学生信息,并将其姓名打印出来。这里是一个简单的示例程序,使用C语言编写:
```c
#include <stdio.h>
#include <string.h>
// 定义学生信息结构体
struct Student {
float height;
float weight;
char name[20];
};
int main() {
const int num_students = 5; // 学生数量
struct Student students[num_students]; // 结构体数组
// 读取学生信息
for (int i = 0; i < num_students; i++) {
printf("请输入第%d位学生的身高(m): ", i+1);
scanf("%f", &students[i].height);
printf("请输入第%d位学生的体重(kg): ", i+1);
scanf("%f", &students[i].weight);
printf("请输入第%d位学生的姓名: ", i+1);
fgets(students[i].name, sizeof(students[i].name), stdin); // 避免换行符
strlen(students[i].name); // 删除多余字符
students[i].name[strlen(students[i].name) - 1] = '\0'; // 添加结束符
}
// 查找最高身高和最重体重的学生
float max_height = students[0].height;
float max_weight = students[0].weight;
char max_name[20];
int max_index;
for (int i = 1; i < num_students; i++) {
if (students[i].height > max_height) {
max_height = students[i].height;
max_weight = students[i].weight;
max_name = students[i].name;
max_index = i;
} else if (students[i].weight > max_weight) {
if (students[i].height == max_height) { // 当身高相同时,选择体重更重的
max_weight = students[i].weight;
max_name = students[i].name;
max_index = i;
}
}
}
// 输出结果
printf("身高最高(%.2fm)和体重最重(%.2fkg)的学生是 %s\n", max_height, max_weight, max_name);
return 0;
}
```
阅读全文