编写代码,为动态数组库设计新函数 DiSort,对动态数组元素进行排序。此函数接受一个BOOL 型式的参数 ascending。参数值为 TRUE 时,从小到大排序;为 FALSE 时,从大到小排序,使用c语言
时间: 2024-03-23 22:44:07 浏览: 53
C语言程序设计-编写函数用选择排序法对数组中的数据进行从小到大的排序;
5星 · 资源好评率100%
下面是使用 C 语言编写的 DiSort 函数的实现:
```c
#include <stdio.h>
#include <stdlib.h>
void DiSort(int* arr, int size, int ascending) {
int i, j, temp;
for (i = 0; i < size - 1; i++) {
for (j = i + 1; j < size; j++) {
if (ascending) {
if (arr[j] < arr[i]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
} else {
if (arr[j] > arr[i]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
}
int main() {
int arr[] = {5, 2, 7, 3, 9, 4};
int size = sizeof(arr) / sizeof(arr[0]);
int i;
printf("Before sorting: ");
for (i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
DiSort(arr, size, 1);
printf("\nAfter sorting in ascending order: ");
for (i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
DiSort(arr, size, 0);
printf("\nAfter sorting in descending order: ");
for (i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这个函数接受三个参数:一个指向动态数组的指针,数组大小和一个布尔值,用于指示排序的顺序。函数使用冒泡排序算法,根据 ascending 参数来决定是升序还是降序排序。在主函数中,我们首先使用 DiSort 函数对数组进行升序排序,然后再对其进行降序排序。
阅读全文