struct person *creat(void) //录入信息,生成链表的函数//
{
head=NULL;
struct person *p,*q;
int flag=1,n=0;
while(flag==1)
{ p=(struct person *)malloc(LEN);
n++;
printf("请输入成员编号:");
scanf("%s",p->num);
printf("请输入成员姓名:");
scanf("%s",p->name);
printf("请输入成员年龄:");
scanf("%s",p->age);
printf("请输入成员电话:");
scanf("%s",p->tele);
printf("请输入成员地址:");
scanf("%s",p->addr);
printf("请输入成员邮箱:");
scanf("%s",p->email);
if(n==1)
q=head=p;
else ---------------------------------------》 这个else 就莫名奇妙了 不要了把 n 变量也不用了, 你这个函数就办一件事情 开辟节点 初始化链表头数据
{q->next=p;
q=p;}
printf("继续录入输入1,否则输入0:"); --------------------------------> 这个就不要了把 反正你的flag 什么作用都木有
scanf("%d",&flag);
}
return(head); ---------------------------------------------------------------------》 这个return 语句就算了,给全局变量赋值,不需要的 ,再说 你这个函数的返回值也没有被用到 无所谓的
}