使用C语言编写一个程序,创建一个动态链表,输入5位学生的数据(学号及姓名),遍历并输出链表中的数据。
时间: 2024-03-07 10:49:04 浏览: 20
好的,以下是使用C语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
struct Student {
int id; // 学号
char name[20]; // 姓名
struct Student* next; // 指向下一个节点的指针
};
int main() {
struct Student* head = NULL; // 初始化链表头指针为空
struct Student* p = NULL; // 定义一个指针p,用于遍历链表
// 输入5个学生的信息
for (int i = 0; i < 5; i++) {
struct Student* s = (struct Student*)malloc(sizeof(struct Student)); // 创建一个新的节点
printf("请输入第%d个学生的学号:", i + 1);
scanf("%d", &(s->id));
printf("请输入第%d个学生的姓名:", i + 1);
scanf("%s", s->name);
s->next = head; // 将新节点的next指向当前头节点
head = s; // 将新节点设置为头节点
}
// 遍历链表并输出节点信息
p = head; // 从头节点开始遍历
while (p != NULL) {
printf("学号:%d,姓名:%s\n", p->id, p->name);
p = p->next; // 将指针指向下一个节点
}
// 释放链表节点的内存
p = head;
while (p != NULL) {
struct Student* temp = p;
p = p->next;
free(temp);
}
return 0;
}
```
运行程序,输入5个学生的学号和姓名后,程序会遍历链表并输出学生信息。注意程序中释放链表节点的内存以避免内存泄漏问题。