| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 429 人关注过本帖
标题:帮忙看下
只看楼主 加入收藏
zgzhly
Rank: 1
等 级:新手上路
帖 子:68
专家分:7
注 册:2008-10-17
结帖率:100%
收藏
 问题点数:0 回复次数:2 
帮忙看下
程序目的是把a链表中与b链表学号相同的学生删去,但是这样这法达不到效果,为什么??
#define NULL 0
struct student
{int num;
 char name[10];
 struct student *next;
}a[5],b[5];
main()
{struct student a[5]={{101,"Wang"},{102,"Li"},{105,"Zhang"},{106,"Wei"}};
 struct student b[5]={{103,"Zhang"},{104,"Ma"},{105,"Chen"},{107,"Guo"},{108,"Lui"}};
 int i,j;
 struct student *head;
 head=a;
 for(j=0;j<5;j++)
 for(i=0;i<5;i++)
  {if(a[i].num==b[j].num)
   if(i==0)
    {head=a[i].next;
     a[i].next=NULL;
    }
   else
    {a[i-1].next=a[i].next;
     a[i].next=NULL;
    }
  }
  printf("\nresult:\n");
   i=0;
  while(a[i].num!=NULL)
   {printf("%7d%7s\n",a[i].num,a[i].name);
   i++;
   }
}
2008-12-12 17:36
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
收藏
得分:0 
while(a[i].num!=NULL)
这个条件有问题,再想想.
你想要的是打印出删除后的正确结果,应该使用head来打印,按next的指向直到结束.
2008-12-12 21:09
zgzhly
Rank: 1
等 级:新手上路
帖 子:68
专家分:7
注 册:2008-10-17
收藏
得分:0 
恩,用结构体指针我做出来了,我现在是在想用这种思路怎么做出来!!
2008-12-12 23:31
快速回复:帮忙看下
数据加载中...
 
   



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

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