C语言线性列表 插入删除

来源:百度知道 编辑:UC知道 时间:2024/06/16 09:42:34
老师留的作业,我写出来的程序乱糟糟的运行不了,麻烦哪位高人帮忙给个正确的程序啊!谢谢了

STUDEN *del(STUDEN *head) //删除
{

STUDEN *p1,*p2;
if(head==NULL)printf("请先选择输入\n");
else{
int num;
p1=head;
if(head==NULL)printf("错误!");
printf("请输入要删除的学号:");
scanf("%d",&num);
while(p1->num!=num&&p1->next!=NULL)
{
{p2=p1;p1=p1->next;}
}
if(p1->num==num)
{
if(head==p1)head=p1->next;
else p2->next=p1->next;
printf("删除成功\n");
m=m-1;
}
else printf("找不到该学生\n");
return(head);
}
}
STUDEN *inser(STUDEN *head) //插入
{

STUDEN *p0,*p1,*heads;
if(head==NULL)printf("请先选择输入\n");
else{
int i;float s;
heads=NULL;
printf("提示: 学号处输入<0>结束插入\n");
while(1)
{
m=m+1;s=0;
p1=(STUDEN *)malloc(LEN);
printf("请输入要插入的学生数据&