为了账号安全,请及时绑定邮箱和手机立即绑定

谁能帮我把动态链表改好,包括前面几个问题都采纳他

谁能帮我把动态链表改好,包括前面几个问题都采纳他

C
溯源1 2017-02-08 22:46:32
#include "stdio.h"#include<malloc.h>#include<string.h>#include<ctype.h>#define LEN sizeof(struct student)struct student{ long num; float score; struct student*next;};struct student*creat(){ struct student *head;    struct student*p1,*p2; char ch; int a=0; head=NULL;            printf("是否输入新数据?(y/n):");        while(toupper(ch=getchar())=='Y')    {      p1=(struct student * )malloc(LEN);      a++;      printf("\n请输入:");      scanf("%ld,%f",&p1->num,&p1->score);      printf("是否输入新数据?(y/n):");      scanf("%ld,%f",&p1->num,&p1->score);      getchar();      printf("是否输入新数据:?(y/n):");            if(a==1)      {       head=p1;       p2=p1;      }      else       {        p2->next=p1;        p2=p1;      }      p1->next=NULL;      }    return (head);}struct student * insert(struct student * head){    struct student *p0,*p1,*p2;    p0=(struct student * )malloc(LEN);    printf("\n输入所要插入节点的数据:");    scanf("%ld,%f",&p0->num,&p0->score);    p1=head;    if(head==NULL)    {      head=p0;      p0->next=NULL;    }    else    if(p1->num>p0->num)    {    p0->next=head;    head=p0;    }    else    {    while(p1!=NULL)    {    if(p1->num<p0->num)    {    p2=p1;    p1=p1->next;    }    else    {    p0->next=p1;    p2->next=p0;    break;    }    }    if(p1==NULL)    {    p0->next=NULL;    p2->next=p0;    }        }    return(head);   }/////void print(struct student *head){ struct student *p; p=head; while(p!=NULL) { printf("\n学生学号:%d,成绩:%4.1f",p->num,p->score); p=p->next; }}struct student *del(struct student *head){ struct student *p1,*p2; long num; printf("\n请输入所要删除的学号:"); scanf("%ld",&num); if(head==NULL) { printf("\n链表为空!\n"); return(head); } if(head->num==num) { printf("删除学号:%ld,成绩%4.1f",head->num,head->score); return(head); } else {  p2=head;  p1=head->next;  while(p1!=NULL)  {   if(p1->num==num)   {    p2->next=p1->next;    break;    }    else    {     p2=p1;     p1=p1->next;     }    }    return(head);    }   }     void main( ){ struct student *stu;//用于指向结构体变量 stu=creat(); stu=insert(stu); print(stu); stu=del(stu); print(stu);}
查看完整描述

3 回答

?
OSong

TA贡献2条经验 获得超0个赞

c语言,抱歉了

查看完整回答
反对 回复 2017-02-20
?
ziom

TA贡献948条经验 获得超1109个赞

看来是没人能帮你改好了

采纳我把,还能得个积分

查看完整回答
反对 回复 2017-02-12
  • 3 回答
  • 0 关注
  • 1290 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信