编写一个利用选择排序法对多个数组中的元素,按照指定数组值排序的函数 mySelectSort。具体要求为: a) 该函数是一个无返回值的函数; b) 该函数的输入参数为六个:数组元素个数,排序方向、浮点数组、字符型指针数组、整型数组 1、整型数组 2 c) 该函数头为: void mySelectSort(int num, int dirct, float farr[ ], char *country[ ],int iarr1[ ], int iarr2[ ]) d) 要求: 在 dirct = 1 时, 在该函数内部按照数组 farr 元素从大到小的顺序,对所有的四个数组 farr[ ], *country[ ], iarr1[ ], iarr2[ ] 进行排序。 在 dirct = -1 时, 在该函数内部按照数组 farr 元素从小到大的顺序,对所有的四个数组 farr[ ], *country[ ], iarr1[ ], iarr2[ ] 进行排序
时间: 2024-03-10 10:51:18 浏览: 42
C语言程序设计-编写函数用选择排序法对数组中的数据进行从小到大的排序;
5星 · 资源好评率100%
好的,我知道了您的要求,下面是 mySelectSort 函数的代码实现:
```
void mySelectSort(int num, int dirct, float farr[], char *country[], int iarr1[], int iarr2[]) {
int i, j, max_index, min_index;
float tmpf;
char *tmpc;
int tmpi;
for (i = 0; i < num - 1; i++) {
max_index = i;
min_index = i;
for (j = i + 1; j < num; j++) {
if (dirct == 1) {
if (farr[j] > farr[max_index]) {
max_index = j;
}
} else if (dirct == -1) {
if (farr[j] < farr[min_index]) {
min_index = j;
}
}
}
if (dirct == 1) {
tmpf = farr[i];
farr[i] = farr[max_index];
farr[max_index] = tmpf;
tmpc = country[i];
country[i] = country[max_index];
country[max_index] = tmpc;
tmpi = iarr1[i];
iarr1[i] = iarr1[max_index];
iarr1[max_index] = tmpi;
tmpi = iarr2[i];
iarr2[i] = iarr2[max_index];
iarr2[max_index] = tmpi;
} else if (dirct == -1) {
tmpf = farr[i];
farr[i] = farr[min_index];
farr[min_index] = tmpf;
tmpc = country[i];
country[i] = country[min_index];
country[min_index] = tmpc;
tmpi = iarr1[i];
iarr1[i] = iarr1[min_index];
iarr1[min_index] = tmpi;
tmpi = iarr2[i];
iarr2[i] = iarr2[min_index];
iarr2[min_index] = tmpi;
}
}
}
```
这个函数使用选择排序法对四个数组进行排序,排序的顺序由参数 dirct 决定,如果 dirct = 1,就按照 farr 数组元素从大到小的顺序排序,如果 dirct = -1,就按照 farr 数组元素从小到大的顺序排序。排序的结果同时对四个数组进行修改,保证它们的元素顺序相同。
阅读全文