while (flag==1) { flag=0; for(i=0;i>count-1;i++) { if(stu[i].sum-stu[i+1].sum>0) { temp.sum=stu[i].sum; stu[i].sum=stu[i+1].sum; stu[i+1].sum=temp.sum; strcpy( temp.num,stu[i].num); strcpy( stu[i].num,stu[i+1].num); strcpy( stu[i+1].num,temp.num); strcpy( temp.name,stu[i].name); strcpy( stu[i].name,stu[i+1].name); strcpy( stu[i+1].name,temp.name); flag=1; } } }帮我添加一个成绩排序
时间: 2024-02-14 08:03:08 浏览: 23
好的,这里给你添加一个成绩排序的代码,可以按照学生总成绩从高到低排序:
```c
while (flag == 1) {
flag = 0;
for (i = 0; i < count - 1; i++) {
if (stu[i].sum < stu[i+1].sum) { // 如果前一个学生的总成绩比后一个学生的总成绩低
// 交换两个学生的总成绩
temp.sum = stu[i].sum;
stu[i].sum = stu[i+1].sum;
stu[i+1].sum = temp.sum;
// 交换两个学生的学号
strcpy(temp.num, stu[i].num);
strcpy(stu[i].num, stu[i+1].num);
strcpy(stu[i+1].num, temp.num);
// 交换两个学生的姓名
strcpy(temp.name, stu[i].name);
strcpy(stu[i].name, stu[i+1].name);
strcpy(stu[i+1].name, temp.name);
// 标记本轮排序有交换操作
flag = 1;
}
}
}
```
将这段代码放在你原来的代码后面,就可以实现按照学生总成绩从高到低排序了。