| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 318 人关注过本帖
标题:这题的删除好像没作用啊,怎么改?
取消只看楼主 加入收藏
屋里静静
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2013-3-30
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:0 
这题的删除好像没作用啊,怎么改?
typedef struct student
{
 char name[10];
 int  score;
 struct student *next;
}student;
#define NULL   0
struct student* creatform(struct student* L)/*建立单链表*/
{ int k,c;
  char name[10];
  struct student*s,*r;
  r=L;
  k=1;
  printf("input name and score:\n");
  while(k)
  {
   scanf("%s %d",&name,&c);
   if(c!=0)
    {
     s=(struct student*)malloc(sizeof(struct student));
     s->score=c;
     strcpy(s->name,name);
     r->next=s;
     r=s;
    }
   else {k=0;r->next=NULL;}
  }
  return L;
 }
 void print(student *L,int x) /*打印出表中所有关键字值<=x的结点数据*/
{
 student *a;
 a=L->next;
  while(a!=NULL)
   {if(a->score<=x)
     {printf("%s ",a->name); printf("%d\n",a->score);}
    a=a->next;}
}

 student * dele(student*L,int x)/*删除表中所有关键字值<=x的结点*/
 {
  student *r,*p1,*p2;
  p1=L;
  p2=p1->next;
  while(p2!=NULL)
  {
  if((p2->score)<=x)
    {r=p2;
     p1->next=p2->next;
     free(r);
     p2=p1->next;}
  else
     {p1=p1->next;
      p2=p2->next;}

  }
  return L;
 }
 void display(student *L) /*输出链表*/
 {
  student *a;
  a=L->next;
  while(a!=NULL)
   {
   printf("%s:",a->name);
   printf("%d\n",a->score);
    a=a->next;}
 }


main()
{int x;
 student *L,*a;
 L=creatform( L);
 a=L;
 display(a);

 a=L;
 printf("input x:");
 scanf("%d",&x);
 print(a,x);

 a=L;
 printf("input x:");
 scanf("%d",&x);
 L=dele(a, x);
 display(L);
 getch();
}
搜索更多相关主题的帖子: return 
2013-03-30 11:57
快速回复:这题的删除好像没作用啊,怎么改?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014954 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved