鬼鬼先生 2013年04月10日
链表的知识,定义了一个结构体数组,想删除链表中的第一个结构体元素,下面的函数怎么不行??
void Delete(struct student *head)
{
system("cls");
int exit=0;
char s[5];
printf("输入要删除学生的学号:(如果删除所有学生请输入0000)\n学号:");
scanf("%s",s);
while(!exit){
if(strlen(s)!=4){
printf("输入非法:学号必须是4位,请重新输入!\n");
scanf("%s",s);}
else
exit=1;
}
struct student *p1,*p2;
if(head==NULL)
{
printf("\nthe list is null!\n");
}
p1=head;
while(strcmp(p1->ID,s)!=0&&p1->next!=NULL){
p2=p1;
p1=p1->next;
}
if(strcmp(p1->ID,s)==0){
if(p1==head)
head=p1->next;
else
p2->next=p1->next;
free(p1);
iTotal--;
printf("%s的学生成功删除\n",s);
}
else
printf("没有找到学号为 %s 的学生,请确认学号输入是否正确!\n",s);
printf("press any key to continue ");
getch();
}
...全文
127 点赞 收藏 5
写回复
5 条回复

还没有回复,快来抢沙发~

发动态
发帖子
新手乐园
创建于2007-09-28

1.4w+

社区成员

4.1w+

社区内容

C/C++ 新手乐园
社区公告
暂无公告