写一个建立一个单链表的函数,输入10个学生的信息(学号、 姓名、成绩),输入学号为0时结束;
时间: 2023-05-20 13:03:12 浏览: 84
以下是建立单链表的函数代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student {
int id;
char name[20];
int score;
struct student *next;
};
struct student *create_list() {
struct student *head, *p, *tail;
head = (struct student *)malloc(sizeof(struct student));
tail = head;
while (1) {
p = (struct student *)malloc(sizeof(struct student));
printf("请输入学生信息(学号、姓名、成绩),以空格分隔:");
scanf("%d", &p->id);
if (p->id == 0) {
free(p);
break;
}
scanf("%s %d", p->name, &p->score);
tail->next = p;
tail = p;
}
tail->next = NULL;
return head;
}
int main() {
struct student *head, *p;
head = create_list();
p = head->next;
while (p != NULL) {
printf("%d %s %d\n", p->id, p->name, p->score);
p = p->next;
}
return 0;
}
```
这个函数会创建一个单链表,每个节点存储一个学生的信息,包括学号、姓名和成绩。输入学号为0时,函数会结束输入并返回链表的头节点。最后,程序会遍历链表并输出每个学生的信息。
阅读全文