struct stud node *Create_Stu Doc()int num,score; name[20];char int size=sizeof(struct stud node);struct stud node *head,*tail, *p;head=tai1=NULL: printf("Input num,name and score; n");scanf(%d%s%d",&num, name,&score);while(num!=0) p=(struct stud_node*)malloc(size);
时间: 2024-04-21 09:29:38 浏览: 144
这段代码的作用是创建一个链表,并从标准输入读入一系列学生的信息,将它们插入到链表中。下面是每一行代码的作用:
1. `int num, score;`定义变量`num`和`score`,分别表示学生的学号和成绩。
2. `char name[20];`定义字符数组`name`,表示学生的姓名。
3. `int size = sizeof(struct stud_node);`定义变量`size`,表示链表节点的大小,使用`sizeof`运算符计算得到。
4. `struct stud_node *head, *tail, *p;`定义指针变量`head`、`tail`和`p`,分别表示链表的头指针、尾指针和临时指针。
5. `head = tail = NULL;`将`head`和`tail`指针初始化为`NULL`,表示链表为空。
6. `printf("Input num, name and score: ");`输出提示信息,提示用户输入学生信息。
7. `scanf("%d%s%d", &num, name, &score);`读入学生信息,分别保存到`num`、`name`和`score`变量中。
8. `while (num != 0)`进入循环,如果`num`不等于0,则表示还有学生信息需要读入。
9. `p = (struct stud_node*)malloc(size);`使用`malloc`函数动态分配一块大小为`size`的内存空间,用于存储新节点。
10. `tail = p;`将`tail`指向新节点,表示新节点为链表的最后一个节点。
11. 读入下一个学生信息,继续循环。
这样,就可以动态地创建一个链表,并将一系列学生信息插入到链表中了。
阅读全文