6-4 利用“选择排序算法“对结构体数组进行排序 分数 5 作者 叶斌 单位 成都信息工程大学 本题:补充函数 sortByChoose()的剩余部分,其要求是利用选择排序算法根据学生成绩(score)实现对结构体数组元素降序排序。 函数接口定义: void sortByChoose(struct Student *pData,int n);
时间: 2024-03-17 18:47:17 浏览: 188
sort排序算法,可以排序的
好的,这是一个关于对结构体数组进行选择排序的问题。下面是函数sortByChoose()的完整实现:
```
#include <stdio.h>
struct Student {
int id;
char name[20];
int score;
};
void sortByChoose(struct Student *pData, int n) {
int i, j;
int maxIndex;
for (i = 0; i < n - 1; i++) {
maxIndex = i;
for (j = i + 1; j < n; j++) {
if (pData[j].score > pData[maxIndex].score) {
maxIndex = j;
}
}
if (maxIndex != i) {
struct Student temp = pData[i];
pData[i] = pData[maxIndex];
pData[maxIndex] = temp;
}
}
}
int main() {
struct Student students[] = {
{1, "Tom", 80},
{2, "Jerry", 90},
{3, "Alice", 70},
{4, "Bob", 85},
{5, "David", 60}
};
int i, n = 5;
printf("Before sorting:\n");
for (i = 0; i < n; i++) {
printf("%d\t%s\t%d\n", students[i].id, students[i].name, students[i].score);
}
sortByChoose(students, n);
printf("\nAfter sorting:\n");
for (i = 0; i < n; i++) {
printf("%d\t%s\t%d\n", students[i].id, students[i].name, students[i].score);
}
return 0;
}
```
这个函数接收一个指向结构体数组的指针,以及数组的长度n。函数使用选择排序算法对结构体数组进行排序,根据学生成绩(score)实现对结构体数组元素降序排序。
阅读全文