建立链表,输出链表
#include <stdio.h>
#include <malloc.h>
#define LEN sizeof(struct Student)
struct Student
{
long num;
float score;
struct Student*next;
};
int n;
struct Student*creat() //建立链表函数
{ struct Student*head;
struct Student*p1,*p2;
n = 0;
p1=p2=(struct Student*)malloc(LEN);
scanf("%ld,%f",&p1->num,&p1->score);
head = NULL;
while(p1->num!=0)
{
n = n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct Student*)malloc (LEN);
scanf("%ld,%f",&p1->num,&p1->score);
}
p2->next = NULL;
return(head);
}
void print(struct Student *head) //输出链表函数
{
struct Student*p;
printf("\nNow,These %d records are:\n",n);
p = head;
if (head!=NULL)
{
do
{
printf("%ld %5.1f\n",p->num,p->score);
p = p->next;
}while(p!=NULL);
}
}
int main()
{
struct Student*head;
head = creat();
print(head);
return 0;
}
显示结果
1001,67.5
1003,87
1006,99
0,0
Now,These 3 records are:
1001 67.5
1003 87.0
1006 99.0
--------------------------------
Process exited after 24.93 seconds with return value 0