.使用链表完成 20个学生信息的存储并顺序打印输出所有学生信息。c语言
时间: 2024-09-11 13:05:43 浏览: 40
在C语言中,我们可以使用结构体(struct)和单向链表(linked list)来存储和打印20个学生的信息。以下是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义学生信息结构体
typedef struct Student {
char name[20];
int age;
} Student;
// 创建一个新的学生节点
Node* createStudent(char* name, int age) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode != NULL) {
newNode->data.name = name;
newNode->data.age = age;
newNode->next = NULL;
}
return newNode;
}
// 插入新学生到链表末尾
void insertStudent(Node** head, char* name, int age) {
Node* newNode = createStudent(name, age);
if (*head == NULL) {
*head = newNode;
} else {
Node* temp = *head;
while (temp->next != NULL) {
temp = temp->next;
}
temp->next = newNode;
}
}
// 打印链表中的所有学生信息
void printStudents(Node* head) {
Node* temp = head;
while (temp != NULL) {
printf("姓名: %s, 年龄: %d\n", temp->data.name, temp->data.age);
temp = temp->next;
}
}
int main() {
Node* head = NULL;
// 插入20个学生的数据(这里只演示第一个)
insertStudent(&head, "张三", 20);
// 添加其他19个学生数据...
// ...
printStudents(head); // 打印所有学生信息
return 0;
}
```
这个程序首先定义了一个`Student`结构体表示学生信息,然后创建了链表节点`Node`,用于存储每个学生的数据。接着,`insertStudent`函数将新的学生插入到链表的末尾,最后`printStudents`函数遍历整个链表并打印出每个学生的信息。
注意,上述代码省略了实际添加剩余19个学生数据的部分,你可以通过循环来实现。在`main`函数中,只需按需添加相应的学生信息即可。
阅读全文