用c语言循环语句建立四个学生信息的动态链表
时间: 2024-05-03 10:19:50 浏览: 91
以下是一个简单的示例程序,演示了如何使用循环语句创建动态链表,存储四个学生的信息。
```c
#include <stdio.h>
#include <stdlib.h>
struct student {
char name[20];
int age;
float score;
struct student *next;
};
int main() {
struct student *head = NULL;
struct student *p, *q;
int i;
// 创建四个学生信息节点
for (i = 1; i <= 4; i++) {
p = (struct student *)malloc(sizeof(struct student));
printf("请输入第%d个学生的姓名、年龄和成绩:", i);
scanf("%s %d %f", p->name, &p->age, &p->score);
p->next = NULL;
if (head == NULL) {
head = p;
} else {
q->next = p;
}
q = p;
}
// 遍历链表,输出学生信息
printf("学生信息如下:\n");
p = head;
while (p != NULL) {
printf("姓名:%s,年龄:%d,成绩:%.2f\n", p->name, p->age, p->score);
p = p->next;
}
// 释放链表节点的内存空间
p = head;
while (p != NULL) {
q = p->next;
free(p);
p = q;
}
return 0;
}
```
在上面的示例程序中,定义了一个 `struct student` 结构体来保存学生信息,包括姓名、年龄和成绩。使用 `malloc` 函数动态分配内存空间来创建链表节点,并通过循环语句将四个学生信息节点链接在一起,形成一个动态链表。链表的头节点保存在指针变量 `head` 中。
在输出学生信息时,使用了 `while` 循环语句遍历链表,并依次输出每个节点中保存的学生信息。
最后,使用 `free` 函数释放链表节点的内存空间,避免内存泄漏。
阅读全文