编写一个程序,要实现的功能是从键盘输入五位学生的身高体重及姓名,并存放在一个结构体数组中从中查找出身高最高和体重最重的学生的姓名身高和体重
时间: 2025-01-02 07:45:41 AIGC 浏览: 79
为了编写这样的程序,我们可以使用 C 语言中的结构体、数组以及标准输入(scanf)函数。首先,我们需要创建一个结构体 `Student` 来存储学生的信息:
```c
#include <stdio.h>
typedef struct {
char name[50];
float height;
float weight;
} Student;
// 函数声明
void input_students(Student students[], int num_students);
float find_highest_height(Student* students, int num_students);
float find_heaviest_weight(Student* students, int num_students);
int main() {
const int MAX_STUDENTS = 5; // 最大学生数
Student students[MAX_STUDENTS];
// 输入学生信息
input_students(students, MAX_STUDENTS);
// 查找最高身高和最重体重的学生
char highest_name[50] = {0}, heaviest_name[50] = {0};
float highest_height = find_highest_height(&students[0], MAX_STUDENTS);
float heaviest_weight = find_heaviest_weight(&students[0], MAX_STUDENTS);
// 打印结果
printf("Heightiest student (name: %s, height: %.2f meters): \n", highest_name, highest_height);
printf("Heaviest student (name: %s, weight: %.2f kg): \n", heaviest_name, heaviest_weight);
return 0;
}
// 输入学生信息到数组
void input_students(Student students[], int num_students) {
for (int i = 0; i < num_students; i++) {
scanf("%s%f%f", students[i].name, &students[i].height, &students[i].weight);
}
}
// 寻找最高身高
float find_highest_height(Student* students, int num_students) {
float max_height = students[0].height;
int index = 0;
for (int i = 1; i < num_students; i++) {
if (students[i].height > max_height) {
max_height = students[i].height;
index = i;
}
}
return students[index].height;
}
// 寻找最重体重
float find_heaviest_weight(Student* students, int num_students) {
float max_weight = students[0].weight;
int index = 0;
for (int i = 1; i < num_students; i++) {
if (students[i].weight > max_weight) {
max_weight = students[i].weight;
index = i;
}
}
return students[index].weight;
}
```
运行这个程序,用户将输入五名学生的身高、体重和姓名,然后程序会找出其中最高的身高和最重的体重,最后显示这两个学生的详细信息。
阅读全文