本题要求实现一个将输入的学生成绩组织成单向链表的简单函数。\n\n函数接口定义:\nvoid input();\n该函数利用scanf从输入中获取学生的信息,并将其组织成单向链表。链表节点结构定义如下:\n\ns
时间: 2023-04-30 13:03:28 浏览: 140
本题要求实现一个将输入的学生成绩组织成单向链表的简单函数。
函数接口定义:
void input();
该函数利用scanf从输入中获取学生的信息,并将其组合成单向链表。链表节点结构定义如下:
struct node {
char name[10];
int score;
node *next; //指向下一个节点的指针
};
链表节点的结构定义如上,其成员包括学生的姓名和成绩以及指向下一个节点的指针。函数input利用scanf从输入中获取学生的信息,并将其组合成单向链表。链表节点按照输入顺序依次连接起来,形成一个单向链表。
相关问题
本题要求实现一个将输入的学生成绩组织成单向链表的简单函数。 函数接口定义: void input(); 该函数利用scanf从输入中获取学生的信息,并将其组织成单向链表。链表节点结构定义如下: struct stud_node { int num; /*学号*/ char name[20]; /*姓名*/ int score; /*成绩*/ struct stud_node *n
本题要求实现一个将输入的学生成绩组合成单向链表的简单函数。函数接口定义为:void input(); 该函数利用scanf从输入中获取学生的信息,并将其组合成单向链表。链表节点结构定义如下:struct stud_node { int num; /*学号*/ char name[20]; /*姓名*/ int score; /*成绩*/ struct stud_node *next; /*指向下一个节点的指针*/};
建立学生信息链表 分数 20 作者 张泳 单位 浙大城市学院 本题要求实现一个将输入的学生成绩组织成单向链表的简单函数。 函数接口定义: void input(); 该函数利用scanf从输入中获取学生的信息,并将其组织成单向链表。链表节点结构定义如下: struct stud_node { int num; /*学号*/ char name[20]; /*姓名*/ int score; /*成绩*/ struct stud_node *next; /*指向下个结点的指针*/ }; 单向链表的头尾指针保存在全局变量head和tail中。 输入为若干个学生的信息(学号、姓名、成绩),当输入学号为0时结束。 裁判测试程序样例: #include <stdio.h> #include <stdlib.h> #include <string.h> struct stud_node { int num; char name[20]; int score; struct stud_node *next; }; struct stud_node *head, *tail; void input(); int main() { struct stud_node *p; head = tail = NULL; input(); for ( p = head; p != NULL; p = p->next ) printf("%d %s %d\n", p->num, p->name, p->score); return 0; } /* 你的代码将被嵌在这里 */
好的,我来给你提供一个实现将输入的学生成绩组织成单向链表的简单函数的代码,满足题目要求:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct stud_node {
int num; /* 学号 */
char name[20]; /* 姓名 */
int score; /* 成绩 */
struct stud_node *next; /* 指向下个结点的指针 */
};
struct stud_node *head, *tail;
void input() {
int num, score;
char name[20];
head = tail = NULL; /* 初始化头尾指针 */
while (scanf("%d", &num) && num != 0) {
scanf("%s%d", name, &score);
struct stud_node *p = (struct stud_node *) malloc(sizeof(struct stud_node));
p->num = num;
strcpy(p->name, name);
p->score = score;
p->next = NULL;
if (head == NULL) {
head = tail = p;
} else {
tail->next = p;
tail = p;
}
}
}
int main() {
struct stud_node *p;
input();
for (p = head; p != NULL; p = p->next) {
printf("%d %s %d\n", p->num, p->name, p->score);
}
return 0;
}
```
在这个函数中,我们使用while循环和scanf从输入中获取学生的信息,并将其组织成单向链表。在每次循环中,我们先定义一个新的节点p,然后将获取到的学生信息存储在p中。接着,我们根据头尾指针是否为NULL来判断链表是否为空。如果链表为空,则将p作为头节点和尾节点;如果链表不为空,则将p插入到链表的尾部,然后更新尾节点。最后,我们遍历链表,并输出每个节点的学生信息。
希望这个代码可以帮到你。
阅读全文