学生的记录由姓名和成绩组成且在主函数中通过结构体数组初始化,不要输入。请编写函数实现把最高分的学生通过结构体指针保存数据并输出
时间: 2024-02-23 15:58:31 浏览: 94
运用结构体数组与输入函数进行存放学生的学号姓名等数据
4星 · 用户满意度95%
好的,我理解了你的问题。以下是我给出的解决方案。
首先,我们需要定义一个结构体,用于保存学生的姓名和成绩:
```c
typedef struct {
char name[20];
int score;
} Student;
```
然后,在主函数中初始化一个结构体数组,存储学生的姓名和成绩:
```c
Student students[] = {
{"张三", 90},
{"李四", 80},
{"王五", 95},
{"赵六", 85},
{"钱七", 92}
};
```
接下来,我们需要编写一个函数,用于找到最高分的学生并保存数据:
```c
void findHighestScore(Student* students, int len, Student* highest) {
int maxScore = -1;
for (int i = 0; i < len; i++) {
if (students[i].score > maxScore) {
maxScore = students[i].score;
*highest = students[i];
}
}
}
```
这个函数接受一个结构体数组,数组的长度,以及一个结构体指针作为参数。它会遍历整个数组,找到最高分的学生,并将其保存到指针所指向的结构体中。
最后,在主函数中调用这个函数,并输出最高分的学生的姓名和成绩:
```c
int main() {
Student highest;
findHighestScore(students, sizeof(students) / sizeof(students[0]), &highest);
printf("最高分的学生是 %s,分数为 %d\n", highest.name, highest.score);
return 0;
}
```
这样,我们就完成了题目要求的功能。
阅读全文