#include<stdio.h>
#include<malloc.h>
struct STUDENT
{
long num;
float socre;
struct STUDENT* next;
};
int n = 0;
struct STUDENT* creat();
void output(struct STUDENT* p);
int main()
{
output(creat());
return 0;
}
struct STUDENT* creat()
{
struct STUDENT* head;
struct STUDENT* p1, * p2;
int len = sizeof(struct STUDENT);
p1 = p2 = (struct STUDENT*)malloc(len);
printf("enter num\\socre of student NO.1:\n");
scanf("%ld%f", &p1->num, &p1->socre);
head = 0;
while (p1->num != 0)
{
n++;
printf("enter num\\socre of student NO.%d:\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->socre);
}
p2->next = 0;
return head;
}
void output(struct STUDENT* p)
{
printf("Now,these %d records are:\n", n);
while (p != 0)
{
printf("%ld%5.1f\n", p->num, p->socre);
p = p->next;
}
}