程序代码:
//把头结点赋值为p了。可是还是不行。不知道问题出在哪。成绩不出来,显示最后那个查找结束 //普通学生按学号查询某门课程的得分 void chaxunmoumenke() { system("CLS"); int i,x; char num[10]; char flag = '0'; struct work *head=NULL; head=(struct work *)malloc(sizeof(struct work)); memset(head,0,sizeof(struct work)); head=lianbiao(); struct work *p=head; while(flag == '0') { printf("请输入要查找的学生的学号(xxxx): "); scanf("%d",&num); fflush(stdin); struct work *p=head; //将头结点head赋值与p if(head == NULL) //如果链表中头结点为空,则查询错误 { printf("查询失败1.\n"); printf("不存在此学生信息.\n"); return ; } else //否则开始查询 { while(p != NULL) { if(p->no == num) //找到学号为num的学生就输出 { do { printf("请输入需要查询的课程(课程1/课程2/课程3)[请输入1,2,3]:\n"); scanf("%d",&x); switch(x) { case 1:printf(" %s \n",p->chengji1),i=1;break; case 2:printf(" %s \n",p->chengji2),i=1;break; case 3:printf(" %s \n",p->chengji3),i=1;break; default: { i=0; printf("没有该课程!请重新输入!"); } } }while(x==0); break; } else p = p -> next; } } printf("查找结束.\n"); fflush(stdin); } }
有生之年 欣喜相逢