求教 QAQ :编了一个函数,结果奇数次失败,偶数次成功是怎么回事?代码已贴出~
struct Student{
int StuID[N]; //学号
char name[30]; //姓名
int sex[N]; //性别,0(女)或1(男)
float score[N][4]; //各科成绩
float sum[N]; //每位学生的总分
float average[N]; //四科平均成绩
};
这是说明的结构体
以下是编的函数
void sort2 (struct Student *p) //从高分到低分顺序排序(3)
{
int i, j;
struct Student temp;
for (i = 0; i < N; i++)
{
p -> sum[i] = (p -> score[i][0]) +( p -> score[i][1]) +( p -> score[i][2]) + (p -> score[i][3]);
p -> average[i] = p -> sum[i] / 4;
}
printf ("从高分到低分顺序排序:\n");
printf ("学号 \t姓名 \t性别 \t数学 \t物理 \t英语 \t计算机 \t总分 \t平均分\n");
printf ("______________________________________________________________________________\n");
for (i = 0; i < N -1; i++)
{
for (j = i + 1; j < N; j++)
{
if (p[i].sum < p[j].sum)
{
temp = p[i];
p[i] = p[j];
p[j] = temp;
}
}
}
for (i = 0; i < N; i++)
printf ("%-d\t%-s\t%-d\t%-.2f\t%-.2f\t%-.2f\t%-.2f\t%-.2f\t%-.2f\n", p -> StuID[i], p[i].name, p -> sex[i], p -> score[i][0], p -> score[i][1], p -> score[i][2], p -> score[i][3], p -> sum [i], p -> average[i]);
printf ("请重新选择或退出系统。\n");
}
这个改了很多次,还是奇数次失败,偶数次成功。。。。。
表示没经验的小白看不出来问题出在哪里。。求教QAQ