(2)定义定一个结构体类型student,写一个函数,根据学号或者成绩,对包含有n个学生的结构体数组进行排序,学生的结构体至少包括3个成员(学号,姓名,入学分数等),比较结构体变量的大小时,可以根据其学号或者分数。
时间: 2024-05-12 15:20:13 浏览: 93
使用结构体数组,利用函数实现按学生学号和姓名的查询操作.c
结构体定义如下:
```
typedef struct {
int number; // 学号
char name[20]; // 姓名
float score; // 入学分数
} student;
```
排序函数定义如下:
```
void sort(student s[], int n, int mode) {
int i, j;
student temp;
if (mode == 1) { // 根据学号排序
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (s[j].number > s[j + 1].number) {
temp = s[j];
s[j] = s[j + 1];
s[j + 1] = temp;
}
}
}
} else if (mode == 2) { // 根据成绩排序
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (s[j].score < s[j + 1].score) {
temp = s[j];
s[j] = s[j + 1];
s[j + 1] = temp;
}
}
}
}
}
```
其中,mode为排序方式,1表示根据学号排序,2表示根据成绩排序。
阅读全文