C语言结构体排序问题

[复制链接]
查看11 | 回复0 | 2009-1-30 06:28:38 | 显示全部楼层 |阅读模式
课程设计得做个学生成绩管理,要用到结构体排序我自己做了一下内容/******************************排序所有学生的成绩*********************************/void sortsorc(struct allstudentinfo *p_student){
int tempID;        int i,j,count,k;
float sum[STUDENTMAX];
count=sorcdatfile(p_student);
if(!count)
{
printf("读取数据失败,!");
getch();
return ;
}
printf("\\n\\t\\t\\t学生综合成绩排序列(按学号)\\n");
for(i=0;i<count;i++)
{        
                if(p_student.student1.sorc[4]==-1)               
sum=(p_student.student1.sorc[3]*0.3)+(p_student.student1.sorc[5]*0.7);                else                        sum=(p_student.student1.sorc[3]*0.15)+(p_student.student1.sorc[5]*0.7)+(p_student.student1.sorc[4]*0.15);
}
for(k=0;k<count;k++)                for(j=count;j<count-1;j++)                {                        if(sum>sum[i+1])                        {                                tempID=p_student.student1.ID;                                p_student.student1.ID=p_student[i+1].student1.ID;                                p_student[i+1].student1.ID=tempID;                        }                }        for(i=0;i<count;i++)                printf("%d\\n",p_student.student1.ID);运行结构根本就没有排序应该是在中间数据转换那里出错了我找不出原因,请大侠指点

                                                                                                for(j=count;j<count-1;j++)这是什么意思?这样对不对:for(k=0;k<count-1;k++) for(j=k+1;j<count;j++) { if(sum[k]>sum[j]) ....}参考文献:yours                                       
提问者对答案的评价:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行