2020.12.28
51行
编写程序完成动态链表的创建和输出,链表的结点为每个学生的数据,成员包括学号(num)和成绩(score)。
要求:
1)写一个函数creat() 完成创建动态链表的创建,函数返回值为指向链表头的指针;
2)写一个函数print() 完成动态链表的输出,结点信息输出采用“%d%6.1f”格式;
#include<stdio.h>
#include<stdlib.h>
#define N sizeof(struct Student)
struct Student
{int num;
float score;
struct Student*next;
};
int n;
struct Student* creat(void)
{
struct Student*head;
struct Student *p1,*p2;
n=0;
p1=p2=(struct Student*)malloc(N);
scanf("%ld %f",&p1->num,&p1->score);
head=NULL;
while(p1->num!=0)
{
n+=1;
if(n==1)
{
head=p1;
}
else
{
p2->next=p1;
p2=p1;
p1=(struct Student*)malloc(N);
scanf("%d %f",&p1->num,&p1->score);
}
}
p2->next=NULL;
return(head);
}
void print(struct Student*creat)
{
struct Student*p1;
p1=creat;
while(p1!=NULL)
{
printf("%d%6.1f\n",p1->num,p1->score);
p1=p1->next;
}
}
int main()
{
void print(struct Student*creat);
print(creat());
return 0;
}
建立动态链表,进行简单的输入和输出。
更改:链接完成后,要将最后一个的地址指向改为NULL,用于终结打印!
博客介绍编写程序完成动态链表的创建和输出,链表结点为学生数据,含学号和成绩。需编写creat()函数创建链表并返回头指针,print()函数按指定格式输出链表。还提到链接完成后将最后一个地址指向NULL以终结打印。

5608

被折叠的 条评论
为什么被折叠?



