建立具有三个结点的链表并输出链表。结点数据为学号、姓名。其中main函数代码如下: int main() { st *head; head=input(); print (head); return 0; }
时间: 2024-02-03 16:04:11 浏览: 66
好的,我来回答你的问题。
首先,我们需要定义一个结构体 `st`,来存储学号和姓名:
```c
typedef struct student {
int num;
char name[20];
struct student *next;
} st;
```
然后,我们需要实现两个函数:`input()` 和 `print()`。
`input()` 函数用于创建链表,代码如下:
```c
st *input() {
st *head, *p, *q;
int i;
head = p = (st*)malloc(sizeof(st));
printf("请输入第1个学生的学号和姓名:");
scanf("%d%s", &p->num, p->name);
for (i = 2; i <= 3; i++) {
q = (st*)malloc(sizeof(st));
printf("请输入第%d个学生的学号和姓名:", i);
scanf("%d%s", &q->num, q->name);
p->next = q;
p = q;
}
p->next = NULL;
return head;
}
```
`print()` 函数用于输出链表,代码如下:
```c
void print(st *head) {
st *p = head;
int i = 1;
while (p != NULL) {
printf("第%d个学生的学号和姓名:%d %s\n", i, p->num, p->name);
p = p->next;
i++;
}
}
```
最后,在 `main()` 函数中调用这两个函数即可:
```c
int main() {
st *head;
head = input();
print(head);
return 0;
}
```
这样就可以建立具有三个结点的链表并输出链表了。
阅读全文