当本人输入一些信息后,现在本人能够正常的输出链表的信息,但是当本人进入查询语句过后,退出系统想再次输出的时候,
查询就直接停止运行了。且查询只能查询一次,再查的画,也会停止运行–学生实践项目。
fflush(stdin);这里是调用语句//n为全局变量让它直到本人选择退出才退出,本人怀疑是链表被释放了。求指导
system(“cls”);
n=1;
while(n) {
searchmeun();
head = search(head);
printf(“按任意键继续\n”);
getchar();
}
break;
student *search(student *head) { //查找学生信息
// fflush(stdin);//–清空缓存区
student *p;
p=(student*)malloc(sizeof(student));
p=head;
int s;
scanf(“%d”,&s);
switch(s) {
case 1: {
fflush(stdin);
// system(“cls”);
printf(“正在使用学号查找信息\n请输入学号\n”);
int y=0;//表示输入所查询的学号
scanf(“%d”,&y);
while (p!=NULL) {
if(p->xh==y) { //找到
p->avg=(p->eng+p->math+p->C+p->datab+p->sjjg)/5.0;
printf(“%s”,p->name);
printf(“%8d%8d%8.0lf%8.0lf%8.0lf%8.0lf%8.0lf%8.0lf%8.0lf\n”,p->xh,p->bj,p->eng,p->math,p->C,p->datab,p->sjjg,p->sum,p->avg);
break;
} else
p=p->next;//指向下一个 由while进行遍历 直到最后
}
// break;
}
n=1;
getchar();
break;
查询就直接停止运行了。且查询只能查询一次,再查的画,也会停止运行–学生实践项目。
fflush(stdin);这里是调用语句//n为全局变量让它直到本人选择退出才退出,本人怀疑是链表被释放了。求指导
system(“cls”);
n=1;
while(n) {
searchmeun();
head = search(head);
printf(“按任意键继续\n”);
getchar();
}
break;
student *search(student *head) { //查找学生信息
// fflush(stdin);//–清空缓存区
student *p;
p=(student*)malloc(sizeof(student));
p=head;
int s;
scanf(“%d”,&s);
switch(s) {
case 1: {
fflush(stdin);
// system(“cls”);
printf(“正在使用学号查找信息\n请输入学号\n”);
int y=0;//表示输入所查询的学号
scanf(“%d”,&y);
while (p!=NULL) {
if(p->xh==y) { //找到
p->avg=(p->eng+p->math+p->C+p->datab+p->sjjg)/5.0;
printf(“%s”,p->name);
printf(“%8d%8d%8.0lf%8.0lf%8.0lf%8.0lf%8.0lf%8.0lf%8.0lf\n”,p->xh,p->bj,p->eng,p->math,p->C,p->datab,p->sjjg,p->sum,p->avg);
break;
} else
p=p->next;//指向下一个 由while进行遍历 直到最后
}
// break;
}
n=1;
getchar();
break;
解决方案
20
你用学号不是可以的吗?
你用姓名查询会崩溃?
建议题主单步调试找到是哪句引发的。
或贴出完整代码。
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
你用姓名查询会崩溃?
建议题主单步调试找到是哪句引发的。
或贴出完整代码。
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
10
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。
40
不要抱着脑袋去想好像是这好像是那,找问题最好的方式就是调试