3、 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。
时间: 2024-02-01 19:15:58 浏览: 74
好的,我明白了。以下是代码实现:
```C++
#include <stdio.h>
#define N 100
struct Student {
char id[15]; // 学号
int score; // 成绩
};
void fun(Student s[], int n)
{
int i, j;
Student temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (s[i].score < s[j].score) {
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
}
}
int main()
{
Student s[N] = {
{"1001", 75},
{"1002", 85},
{"1003", 90},
//... 其他学生
};
int n = 3; // 学生数量
fun(s, n);
// 输出排好序的学生记录
for (int i = 0; i < n; i++) {
printf("学号:%s,成绩:%d\n", s[i].id, s[i].score);
}
return 0;
}
```
这个函数使用了冒泡排序,对数组中的学生记录按照成绩从高到低排序。在主函数中,我们先定义了一个结构体数组 `s`,将学生信息存入其中,然后调用排序函数 `fun` 将学生信息排好序,并输出结果。
阅读全文