void insert(node *head)//新建插入数据
{
node *p;
node *r;
p = r = head->next;
while(p)
p = p->next;
p = (node *)malloc(sizeof(node));
printf("请按以下格式输入信息:姓名 成绩\n");
scanf("%s %f",p->lan.name,&p->lan.score);
printf("姓名:%s\t成绩:%.1f\n",p->lan.name,p->lan.score);//1、输出当前输入的数据
p->next = NULL;
printf("\n\n\n");
while(r)//2、输出全部数据
{
printf("姓名:%s\t成绩:%.1f\n",r->lan.name,r->lan.score);
r = r->next;
}
}
运行结果如下:
请按以下格式输入信息:姓名 成绩
linlin 45
姓名:linlin 成绩:45.0
姓名:临高思 成绩:89.0
姓名:黄江流 成绩:76.0
姓名:冯棱 成绩:92.0
Press any key to continue
问题:插入数据后马上输出是没有问题的,但是后面输出的全部数据不包括当前输入数据,为什么?有什么解决的办法?