输入两个学生的学号、姓名和成绩,输出成绩较高学生的学号、姓名和成绩。用C语言结构体与链表编写
时间: 2025-06-09 07:02:36 浏览: 19
在C语言中,我们可以创建一个结构体来表示学生的信息,然后使用链表数据结构来存储多个学生。首先,我们需要定义一个`Student`结构体:
```c
typedef struct {
int id; // 学号
char name[50]; // 姓名
float score; // 成绩
} Student;
```
接下来,我们定义一个链表节点`Node`以及链表头指针`List`:
```c
typedef struct Node {
Student student;
struct Node* next;
} Node;
Node* head = NULL;
```
为了找出成绩较高的学生,我们可以遍历链表并比较每个学生的成绩。这里是一个简单的函数来实现这个功能:
```c
void find_highest_score() {
if (head == NULL) {
printf("链表为空,无法找到最高分。\n");
return;
}
Node* current = head;
while (current != NULL) {
if (current->student.score > highest_score_student) {
highest_score_student = current->student.score;
winner_id = current->student.id;
winner_name = current->student.name;
}
current = current->next;
}
printf("成绩最高的学生信息:\n";
printf("学号: %d\n", winner_id);
printf("姓名: %s\n", winner_name);
printf("成绩: %.2f\n", winner_score);
}
```
在这里,`highest_score_student`、`winner_id`和`winner_name`分别保存着目前发现的成绩最高者的信息。
阅读全文
相关推荐


















