3、 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。
时间: 2024-02-06 20:11:57 浏览: 28
好的,我可以帮你解决这个问题。以下是函数fun的实现代码:
```
#include <stdio.h>
#include <stdlib.h>
#define MAXN 100
typedef struct {
int id;
int score;
} Student;
void fun(Student s[], int n) {
int i, j;
// 冒泡排序
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (s[j].score < s[j+1].score) {
// 交换两个学生记录
Student tmp = s[j];
s[j] = s[j+1];
s[j+1] = tmp;
}
}
}
}
int main() {
int n;
Student s[MAXN];
printf("请输入学生个数(不超过%d个):", MAXN);
scanf("%d", &n);
printf("请输入每位学生的学号和成绩:\n");
int i;
for (i = 0; i < n; i++) {
scanf("%d%d", &s[i].id, &s[i].score);
}
fun(s, n);
printf("按成绩排序后的学生列表:\n");
for (i = 0; i < n; i++) {
printf("%d\t%d\n", s[i].id, s[i].score);
}
return 0;
}
```
在此代码中,我们定义了一个结构体类型Student,包含学号和成绩两个成员。接着,在函数fun中,我们用冒泡排序算法按成绩从高到低排序学生记录。最后,在主函数中,我们输入学生记录并调用函数fun进行排序,然后输出排序后的学生列表。
希望这个答案能够帮到你,如果有什么问题,请继续提问。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)