谁能给我讲讲这个函数的算法是怎么回事
不是我写的,看别人的,看不懂,求教是个选课系统的退课函数
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 编辑 ]