定义一个函数create建立一个有4名学生数据的单向动态链表,在主函数内调用create函数,并输出单向动态链表中的学生数据。create函数加注释。
时间: 2023-06-05 09:05:00 浏览: 90
好的,我会按照要求回答问题。
以下是create函数的代码,已加注释解释每行代码的作用:
```c++
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
typedef struct student{
char name[20]; // 姓名
int age; // 年龄
double score; // 成绩
struct student *next; // 下一个节点指针
} STUDENT;
// 定义create函数
STUDENT *create(){
// 初始化头节点,头节点不存储数据
STUDENT *head = (STUDENT*)malloc(sizeof(STUDENT));
head->next = NULL;
// 依次添加四名学生数据
for(int i = 0; i < 4; i++){
// 初始化新节点
STUDENT *newNode = (STUDENT*)malloc(sizeof(STUDENT));
printf("请输入第%d名学生的姓名、年龄、成绩,用空格隔开:", i+1);
scanf("%s %d %lf", newNode->name, &newNode->age, &newNode->score);
newNode->next = NULL;
// 将新节点插入到链表中
STUDENT *p = head;
while(p->next != NULL){
p = p->next;
}
p->next = newNode;
}
return head;
}
int main(){
STUDENT *head = create();
STUDENT *p = head->next;
while(p != NULL){
printf("%s %d %.1lf\n", p->name, p->age, p->score);
p = p->next;
}
return 0;
}
```
希望我的回答有帮助,如果您有其他问题,可以随时问我。