补充函数 sortByChoose()的剩余部分,其要求是利用选择排序算法根据学生成绩(score)实现对结构体数组元素降序排序。 函数接口定义: void sortByChoose(struct Student *pData,int n); 裁判测试程序样例: #include<stdio.h> #include<stdlib.h> #define N 10 struct Student { int num; int score; }; void sortByChoose(struct Student *pData,int n); int main(void) { struct Student data[10],*p; int i; for(p=data,i=0;i<N;i++) { scanf("%d %d",&p->num,&p->score); p++; } sortByChoose(data,N); for (p=data,i=0;i<N;i++) { printf("%2d-%-5d", p->num, p->score); p++; } return 0; } void sortByChoose(struct Student *pData,int n) { struct Student *p1,*p2,*p; int num, score,i,j; for(p1=pData;p1<pData+n-1;p1++) { /* 请在这里填写答案 */ } } 输入样例: 29 90 15 80 87 55 65 84 35 80 33 55 44 79 99 80 89 80 41 55 输出样例: 29-90 65-84 15-80 35-80 99-80 89-80 44-79 87-55 33-55 41-55
时间: 2024-01-27 18:04:34 浏览: 74
C语言利用结构体数组实现学生成绩管理系统
5星 · 资源好评率100%
补充函数 sortByChoose() 的剩余部分:
```c
void sortByChoose(struct Student *pData, int n) {
struct Student *p1, *p2, *pMin;
int i, j, minIndex, tempNum, tempScore;
for (i = 0; i < n - 1; i++) {
pMin = pData + i;
minIndex = i;
for (j = i + 1; j < n; j++) {
if (pData[j].score > pMin->score) {
pMin = pData + j;
minIndex = j;
}
}
if (minIndex != i) {
tempNum = pData[i].num;
tempScore = pData[i].score;
pData[i].num = pMin->num;
pData[i].score = pMin->score;
pMin->num = tempNum;
pMin->score = tempScore;
}
}
}
```
阅读全文