当下面的代码执行完后,链表的内容就清空了???
当下面的代码执行完后,链表的内容就清空了???
student *checkID(student *stu)
{
int ID = 0;
student *p1=NULL;
student *p2=NULL;
printf("请输入要查询学生的学号(输0退出):");
scanf("%d",&ID);
getchar();
while(ID != 0)
{
if(stu==NULL)
{
system("cls");
printf("\n\n\t\t\t 没有任何学生资料!!!\n\n\n\n");
printf("请按回车键返回");
getchar();
return stu;
}
p1=stu; //循环查找ID相等的节点
while(ID != p1->m_ID && p1->next != NULL)
{
p2=p1;
p1=p1->next;
}
if(ID == p1->m_ID) //如果找到了就将这个节点打出来
{
printf("\t\t\t --------------------------------\n");
printf("\t\t\t 学号 姓名 C语言 C++ 英语\n");
printf("\t\t\t %4d%8s%7.1lf%7.1lf%7.1lf\n",p1->m_ID,p1->m_Name,p1->m_C,p1->m_Cpp,p1->m_Eng);
printf("\t\t\t --------------------------------\n\n");
}
else
{
printf("\n\n\t\t\t学号为%d的学生不存在!\n\n\n",ID);
}
printf("输入要查询的学生的学号:");
scanf("%d",&ID);
}
printf("\n\n\t\t 已经退出了学生成绩查询!\n\n\n");
return stu;
}
当我运行完这个函数时,链表的内容为什么就清空了,要如果才能不清空链表的数据!!!
是不是逻辑有什么问题啊??
望高手赐教!!!