重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

c语言删除学生函数 c语言学生管理系统删除一个学生

c语言删除学生信息函数 有问题求指教!

struct student* del(struct student* head)

成都创新互联网络公司拥有10多年的成都网站开发建设经验,上1000+客户的共同信赖。提供成都做网站、网站制作、成都外贸网站建设、网站开发、网站定制、卖友情链接、建网站、网站搭建、成都响应式网站建设公司、网页设计师打造企业风格,提供周到的售前咨询和贴心的售后服务

{

if (NULL == head)//如果链表为空,则直接返回

return head;

struct student* p, *q;

int num;

p = head;

printf("请输入要删除学生的学号:\n");

scanf("%d", num);//这里不需要再申请结构体空间,直接放int变量就可以了

// 循环查找,直到找到或者链表结束为止

while (p != NULL p-num != num)

{

q = p;//q用来保存上一节点,再删除当前节点时会用到,见p!=NULL

p = p-next;

}

//while结束后,p==NULL,则表示没有找到

//如果找到第一个p一定不为NULL,因为第一句已经判断,head后移一次

if (p == head)

head = head-next;//头结点改变

else if (p != NULL)

{

q-next = p-next;//断开要删除的节点

p-next = NULL;

}

//如果找到,则需要释放删除的节点的空间,避免内存泄露

if (p != NULL)

free(p);

return head;//由于可能改变了头结点,所以需要返回头结点

}

void main()

{

struct student*head;

head=create();

system("cls");

print(head);

getchar();

getchar();

head = del(head);//这里需要得到头结点,因为头结点可能改变了

getchar();

getchar();

system("cls");

print(head);

}

按照上面的改就没问题了,有不懂的再问

不好意思,早上出去玩了

c语言链表根据学生学号删除学生信息的函数,这是我编写的错误的order_ID删除函数。求指点怎么编写正确的

你好歹提供完整的代码啊,我还要给你补全,累死人啊

给你修改好了排序这部分,自己好好理解一下吧

student *order_ID(student*p)

{

student *t,*s, *tmp1,*tmp2 , tmp3;

for(t=p;t!=NULL;t=t-next)

{

for(s=t-next;s!=NULL;s=s-next)

{

if ( (t-studentID) (s-studentID) )

{

//交换 采用结构体赋值的方式,不进行链表的拆接。

tmp1=t-next; 保存原t的后继

tmp2=s-next; 保存原s的后继

tmp3=*t ; 交换两个结构的数据,指针不交换

*t=*s ;

*s=tmp3 ;

t-next=tmp1; 恢复后继,保持原链表结构

s-next=tmp2;

}

}

}

return p;

}

如果有兴趣你可以自己研究一下拆链的方法, 这需要考虑的内容较多,一头结点发生变化怎么办?二拆链时,要记住前趋结点,相对来说较为复杂。

还有一种方法:采用带头结点的链表,每次取出最小的,拆出来,建立新表!这个相对容易一些

C语言编程。函数Delete()

void delete_student(student *L,long studentnum)

{

int flag = 0;

student * p = L,*q = p-next;

while(q)

{

if(q-number == studentnum)

{

flag = 1;

q = q-next;

break;

}

else

{

p = q;

q = q-next; /*下一个结点*/

}

}

if(flag == 0)

printf("删除学生失败,不存在这个学号的学生\n");

else{

printf("删除学生成功! \n ");

}

}

c语言函数删除一组学生数据和修改学生数据

第一个问题不明白你说的“主函数调用输出函数”是什么意思。是要在主函数中输出你的for循环里的东西吗?那就把那个j定义为全局的变量,就是放到del函数外面。

第二个问题,应该把j-1都改成j就可以了。


分享标题:c语言删除学生函数 c语言学生管理系统删除一个学生
本文URL:http://cqcxhl.com/article/ddijspj.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP