) 编写一个利用冒泡排序法对多个数组中的元素,按照指定数组值排序的函数 myBubbleSort。具体要求为: a) 该函数是一个无返回值的函数; b) 该函数的输入参数为六个:数组元素个数,排序方向、整型数组 1、字符型指针数组、整型数组 2、浮点数组 c) 该函数头为: void myBubbleSort(int num, int dirct,int iarr1[ ], char *country[ ], int iarr2[ ], float farr[ ]) d) 要求: 在 dirct = 1 时, 在该函数内部按照数组 iarr1 元素从大到小的顺序,对所有的四个数组: iarr1[ ], *country[ ], iarr2[ ], farr[ ] 进行排序。 在 dirct = -1 时, 在该函数内部按照数组 iarr1 元素从小到大的顺序,对所有的四个数组: iarr1[ ], *country[ ], iarr2[ ], farr[ ] 进行排序。
时间: 2024-03-10 11:51:04 浏览: 48
下面是一个符合上述要求的 myBubbleSort 函数的示例代码:
```
void myBubbleSort(int num, int dirct, int iarr1[], char *country[], int iarr2[], float farr[]) {
int i, j;
int tempInt;
char *tempChar;
float tempFloat;
for(i = 0; i < num - 1; i++) {
for(j = 0; j < num - 1 - i; j++) {
if((dirct == 1 && iarr1[j] < iarr1[j+1]) || (dirct == -1 && iarr1[j] > iarr1[j+1])) {
// 对 iarr1 数组进行冒泡排序
tempInt = iarr1[j];
iarr1[j] = iarr1[j+1];
iarr1[j+1] = tempInt;
// 对 country 数组进行冒泡排序
tempChar = country[j];
country[j] = country[j+1];
country[j+1] = tempChar;
// 对 iarr2 数组进行冒泡排序
tempInt = iarr2[j];
iarr2[j] = iarr2[j+1];
iarr2[j+1] = tempInt;
// 对 farr 数组进行冒泡排序
tempFloat = farr[j];
farr[j] = farr[j+1];
farr[j+1] = tempFloat;
}
}
}
}
```
该函数使用了冒泡排序的算法,通过双重循环对四个数组进行排序。在每一次循环中,通过比较 iarr1 元素的大小,根据参数 dirct 的取值决定冒泡排序的方向。如果 dirct 等于 1,则按照从大到小的顺序排序,否则按照从小到大的顺序排序。在对四个数组进行排序时,使用了交换变量的方法来实现元素的交换。最后,函数中没有返回值,而是直接修改了输入参数所对应的数组。
阅读全文