大家帮忙看下这段代码有什么问题啊
//把学生成绩按从高到低的顺序排序
void sortSeqList(SeqList*L){
SeqList*L1=(SeqList*)malloc(sizeof(SeqList));
STUDENT temp;
int len,i,j;
len=L->last;
for(i=0;i<=len;i++){
L1->data[i]=L->data[i];
}
L1->last=L->last;
for(i=1;i<=len;i++){
if(L1->data[i].score>L1->data[i-1].score){
temp.score=L1->data[i].score;
strcpy(temp.num,L1->data[i].num);
strcpy(temp.name,L1->data[i].name);
L1->data[i]=L1->data[i-1];
for(j=i-2;(temp.score>L1->data[j].score)&&(j>=0);j--){
L1->data[j+1]=L1->data[j];
}
L1->data[j+1].score=temp.score;
strcpy(L1->data[j+1].num,temp.num);
strcpy(L1->data[j+1].name,temp.name);
}
}
}
程序不完整,无法帮你调试,看上去
1.,for(i=0;i<=len;i++){
一般i的确是0到len,但不应该包含len
2.你的sort算法看上去不正确,用普通的冒泡法试度
热门标签: