上题中使用指针student *p1、*p2,按数组中的成绩2从小到大进行排序。(选择排序法)
时间: 2023-06-25 07:04:50 浏览: 86
用指针给一组数排序
5星 · 资源好评率100%
可以按照以下步骤进行选择排序:
1. 定义一个指针变量p1,让它指向数组的第一个元素。
2. 从p1所指向的元素开始,依次与它后面的元素比较,找到其中成绩最小的元素。
3. 如果找到了比p1所指向的元素更小的元素,就交换这两个元素的位置。
4. 将指针p1向后移动一位,重复步骤2和3,直到p1指向数组的最后一个元素为止。
代码示例:
```c
struct student {
char name[20];
int age;
float score1;
float score2;
float score3;
float score4;
float score5;
float score6;
float average;
};
void select_sort(struct student *arr, int len) {
struct student *p1, *p2, temp;
for (p1 = arr; p1 < arr + len - 1; p1++) {
for (p2 = p1 + 1; p2 < arr + len; p2++) {
if (p2->score2 < p1->score2) {
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
}
}
}
```
阅读全文