用c语言写一个单链表来存放学生的学号和成绩
时间: 2023-04-05 22:02:40 浏览: 147
好的,我可以回答这个问题。以下是一个用 C 语言实现的单链表来存放学生的学号和成绩的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义学生结构体
struct student {
int id; // 学号
float score; // 成绩
struct student *next; // 指向下一个节点的指针
};
int main() {
// 创建头节点
struct student *head = (struct student *)malloc(sizeof(struct student));
head->next = NULL;
// 添加节点
struct student *p = head;
int id;
float score;
while (1) {
printf("请输入学生的学号和成绩(以空格分隔),输入 -1 结束:");
scanf("%d", &id);
if (id == -1) {
break;
}
scanf("%f", &score);
// 创建新节点
struct student *new_node = (struct student *)malloc(sizeof(struct student));
new_node->id = id;
new_node->score = score;
new_node->next = NULL;
// 将新节点插入链表尾部
p->next = new_node;
p = new_node;
}
// 遍历链表并输出学生信息
p = head->next;
while (p != NULL) {
printf("学号:%d,成绩:%.2f\n", p->id, p->score);
p = p->next;
}
// 释放链表内存
p = head;
while (p != NULL) {
struct student *temp = p;
p = p->next;
free(temp);
}
return 0;
}
```
这个程序会要求用户输入学生的学号和成绩,然后将它们存储在一个单链表中。最后,程序会遍历链表并输出每个学生的学号和成绩。注意,这个程序只是一个示例,实际应用中可能需要根据具体需求进行修改。
阅读全文