代码如下:
#include<stdio.h>
#include<stdlib.h>
struct Student
{
long num;
float score;
struct Student *next;
};
struct Student *creat()
{
struct Student *head=NULL,*p=NULL,*pend=NULL;
p=(struct Student *)malloc(sizeof(struct Student));
scanf("%ld,%f",&p->num,&p->score);
while(p->num!=0)
{
if(head==NULL)
{
head=p;
pend=p;
}
else
{
pend->next=p;
pend=p;
}
p=(struct Student *)malloc(sizeof(struct Student));
scanf("%ld,%f",&p->num,&p->score);
}
if(pend!=NULL) pend->next=NULL;
free(p);
return head;
}
void print(struct Student *head)
{
struct Student *p;
if(head==NULL)
{
printf("Empty!\n");
return;
}
p=head;
printf("Scores are:\n");
if(p!=NULL)
do
{
printf("num:%ld,score:%.2f\n",p->num,p->score);
p=p->next;
}while(p!=NULL);
}
int main()
{
struct Student *creat();
void print(struct Student *head);
struct Student *pt;
pt=creat();
print(pt);
return 0;
}
运行结果如下: