用c语言编写一个代码,使用链表完成20个学生信息的存储并顺序打印输出所有学生信息
时间: 2024-09-10 22:22:21 浏览: 58
C语言:定义一个包含学生信息(学号,姓名,成绩)的顺序表和链表.zip
5星 · 资源好评率100%
在C语言中,我们可以使用结构体定义学生的信息,然后通过链表来存储和遍历这些信息。这里是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义学生结构体
typedef struct {
char name[50];
int age;
} Student;
// 链表节点
typedef struct Node {
Student info;
struct Node* next;
} Node;
// 初始化链表
Node* createNode(Student student) {
Node* newNode = (Node*)malloc(sizeof(Node));
if(newNode != NULL) {
newNode->info = student;
newNode->next = NULL;
}
return newNode;
}
// 添加学生到链表
void addStudentToList(Node** head, Student student) {
Node* newNode = createNode(student);
if(*head == NULL) {
*head = newNode;
} else {
Node* temp = *head;
while(temp->next != NULL) {
temp = temp->next;
}
temp->next = newNode;
}
}
// 打印链表中的学生信息
void printStudentList(Node* head) {
Node* temp = head;
while(temp != NULL) {
printf("Name: %s, Age: %d\n", temp->info.name, temp->info.age);
temp = temp->next;
}
}
int main() {
// 创建并添加20个学生信息
Node* head = NULL;
for(int i = 0; i < 20; i++) {
Student student;
scanf("%s %d", student.name, &student.age);
addStudentToList(&head, student);
}
// 打印所有学生信息
printStudentList(head);
return 0;
}
```
这个程序首先创建了一个`Node`结构体,用于表示链表中的每个元素。然后定义了初始化节点、添加学生到链表以及打印链表的功能。在`main()`函数中,我们循环20次输入学生的姓名和年龄,并将其添加到链表中,最后打印出所有学生的信息。
阅读全文