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

是个选课系统的退课函数

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
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:70 
for(i=0;p->nelenum[i]!=num1;i++);//找到该生要删除的课程号在所选课程数组中的位置
     for(j=i;p->nelenum[j]!=0;j++)//删除课程
     p->nelenum[j]=p->nelenum[j+1];//首次执行是将要删除的课程号用下一个课程号代替,以后的是课程号依次向前移位,直到结束
     p->nelenum[--j]=0;//将原来的最后一个课程取消(因为已前移一个位置)

★★★★★为人民服务★★★★★
2012-05-24 07:40
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:10 
自己调试一下马上就会知道

                                         
===========深入<----------------->浅出============
2012-05-24 08:19
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.013981 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved