| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 364 人关注过本帖
标题:谁能给我讲讲这个函数的算法是怎么回事
取消只看楼主 加入收藏
jianyuling00
Rank: 3Rank: 3
来 自:琼州学院
等 级:论坛游侠
帖 子:89
专家分:177
注 册:2012-3-17
结帖率:60%
收藏
已结贴  问题点数:80 回复次数:2 
谁能给我讲讲这个函数的算法是怎么回事
不是我写的,看别人的,看不懂,求教

是个选课系统的退课函数

void back(struct student * p)//退课
 {
     struct couse * p1;
     int num1,i,j;
     printf("请输入你要退掉的课程编号:\n");
     scanf("%d",&num1);
     p1=head1;
     while(p1->num1!=num1) p1=p1->next;
     for(i=0;p->nelenum[i]!=num1;i++);
     for(j=i;p->nelenum[j]!=0;j++)
     p->nelenum[j]=p->nelenum[j+1];//11111111111111111
     p->nelenum[--j]=0;//111111111111111111111111
     (p1->nelepeo)--;
     printf("退课成功!\n");
 }
看不太懂,不知道这是怎么实现覆盖的
特别是标1的那两条语句

附上结构体信息
struct couse//课程信息结构体
 {
     int num1;
     char name1[20];
     int score;
     int nelepeo;//课程已选人数
     int Melepeo;//课程人数上限
     struct couse * next;
 };
 struct student//学生信息结构体
 {
     int num2;
     char name2[20];
     int nelenum[50];//已选课程编号
     int nelen;//已选课程数量
     struct student * next;
 };

[ 本帖最后由 jianyuling00 于 2012-5-23 23:54 编辑 ]
搜索更多相关主题的帖子: 课程 
2012-05-23 23:52
jianyuling00
Rank: 3Rank: 3
来 自:琼州学院
等 级:论坛游侠
帖 子:89
专家分:177
注 册:2012-3-17
收藏
得分:0 
回复 2楼 cnfarer



还是不懂,for(j=i;p->nelenum[j]!=0;j++);//删除课程,是怎么删除的?

按我的理解,循环出来是p->nelenum[j]=0,但是j已经不等于i了吧??

如果是的话那p->nelenum[j]已经不等于要删除的课程编号num1了
2012-05-24 11:59
jianyuling00
Rank: 3Rank: 3
来 自:琼州学院
等 级:论坛游侠
帖 子:89
专家分:177
注 册:2012-3-17
收藏
得分:0 
回复 4楼 jianyuling00
哦,我看错循环了,我以为下面那个还有分号。。。
2012-05-24 12:01
快速回复:谁能给我讲讲这个函数的算法是怎么回事
数据加载中...
 
   



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

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