用链表实现的排序函数有问题,求指点
我做的是一个学生成绩管理系统,是用链表实现的,以下是整个程序的其中一个排序函数,实现按总成绩升序的形式依次排列各个学生的姓名,学号,各科成绩其中length(head)函数已定义,len为整个链表的长度,下面的函数不知道哪错了,希望得到高手指点
linklist *sort(linklist*head)
{
linklist *p;
int ii,ij,it,ip,len;
char ca[40],cb[40];
p=head->next;
len=length(head);
for(ii=1;ii<len;ii++)
{
p=head->next;
for(ij=ii+1;ij<len;ij++)
{
if(p->data.iscore[4]>p->next->data.iscore[4]);
{
for(ip=0;ip<5;ip++)
{
it=p->data.iscore[ip];
p->data.iscore[ip]=p->next->data.iscore[ip];
p->next->data.iscore[ip]=it;
}
strcpy(ca,p->);
strcpy(p->,p->next->);
strcpy(p->next->,ca);
strcpy(cb,p->);
strcpy(p->,p->next->);
strcpy(p->next->,cb);
}
p=p->next;
}
}
printf("\n\n\n\n\n\n\n\t\t\t\t排序成功!\n");
return head;
}