补全代码:在这里给出函数被调用进行测试的例子。例如: #include <stdio.h> #include <stdlib.h> struct stu{ char name[20]; int no; struct stu *next;}; struct stu * create(); void show(struct stu *p){ while(p){ printf("%s %d\n",p->name,p->no); p=p->next; } } int main() { struct stu *p=NULL; p=create(); show(p); return 0; } /* 请在这里填写答案 */
时间: 2024-01-31 22:03:48 浏览: 66
下面是补全代码后的完整程序:
```c
#include <stdio.h>
#include <stdlib.h>
struct stu {
char name[20];
int no;
struct stu *next;
};
struct stu *create() {
struct stu *head = NULL, *p = NULL, *q = NULL;
int n, i;
printf("请输入学生人数:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
p = (struct stu *)malloc(sizeof(struct stu));
printf("请输入第%d个学生的姓名和学号:", i);
scanf("%s %d", p->name, &p->no);
p->next = NULL;
if (head == NULL) {
head = p;
} else {
q->next = p;
}
q = p;
}
return head;
}
void show(struct stu *p) {
while (p) {
printf("%s %d\n", p->name, p->no);
p = p->next;
}
}
int main() {
struct stu *p = NULL;
p = create();
show(p);
return 0;
}
```
在上面的代码中,我们定义了一个 `create` 函数和一个 `show` 函数。`create` 函数用来创建链表,`show` 函数用来遍历链表并输出每个结点的信息。
在 `main` 函数中,我们首先定义一个 `struct stu *` 类型的指针 `p`,然后调用 `create` 函数创建一个链表,并将链表的头指针赋值给 `p`。最后调用 `show` 函数遍历链表并输出每个结点的信息。
阅读全文