用C语言写一个将数组从大到小的排序的函数,返回值为排序后的数组或指针
时间: 2024-03-12 10:50:20 浏览: 85
好的,下面是一个用C语言实现的将数组从大到小排序的函数:
```c
#include <stdio.h>
int* sort_desc(int arr[], int size) {
int i, j, temp;
for (i = 0; i < size - 1; i++) {
for (j = i + 1; j < size; j++) {
if (arr[i] < arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
```
这个函数接收一个整数数组和数组的大小作为参数,并将数组按照从大到小的顺序排序。它使用了冒泡排序算法,通过比较相邻的元素,将大的元素交换到数组的前面,最终得到一个从大到小排序的数组。
函数的返回值是一个指向排序后数组的指针,可以直接使用该指针访问排序后的数组。调用该函数的示例代码如下:
```c
#include <stdio.h>
int main() {
int arr[] = {5, 2, 9, 1, 3};
int size = sizeof(arr) / sizeof(int);
int* sorted_arr = sort_desc(arr, size);
int i;
printf("Sorted array: ");
for (i = 0; i < size; i++) {
printf("%d ", sorted_arr[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
Sorted array: 9 5 3 2 1
```
希望这个函数能够满足你的需求,如有问题请随时提出。
阅读全文