想用链表做一个学生信息管理系统,发现运行不成
#include<stdio.h>#include<malloc.h>
#include<stdlib.h>
#define LEN sizeof(struct stu)
struct stu
{
char num[3];
char name[20];
char age[3];
char sex[2];
char bir[12];
char adr[20];
char tel[15];
char mail[20];
struct stu*next;
};
int n;
struct stu*creat()
{
struct stu*head;
struct stu *p1,*p2;
n=0;
p1=p2=(struct stu*)malloc(LEN);
scanf("%s,%s %s %s %s %s %s %s %s",&p1->num ,&p1->name ,&p1->age ,&p1->sex ,&p1->bir ,&p1->adr ,&p1->tel ,&p1->mail );
head=NULL;
while (p1->num!=0)
{
n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct stu*)malloc(LEN);
scanf("%s,%s %s %s %s %s %s %s %s",&p1->num ,&p1->name ,&p1->age ,&p1->sex ,&p1->bir ,&p1->adr ,&p1->tel ,&p1->mail );
}
p2->next=NULL;
return(head);
}
void print(struct stu *head)
{
struct stu*p;
printf("\n %d个数据为:\n",n);
p=head;
if(head=NULL)
do
{ printf("%s,%s %s %s %s %s %s %s %s",p->num ,p->name ,p->age ,p->sex ,p->bir ,p->adr ,p->tel ,p->mail );
p=p->next;
}while(p!=NULL);
}
int main()
{
struct stu*head;
head=creat();
print(head);
}