C语言 设计一个函数实现对参数p传送的首地址,n为元素个数的双精度型数组按降序排序
时间: 2024-01-22 17:18:35 浏览: 26
以下是一个实现双精度型数组按降序排序的函数示例:
```c
void sort(double *p, int n) {
int i, j;
double temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (*(p + j) < *(p + j + 1)) {
temp = *(p + j);
*(p + j) = *(p + j + 1);
*(p + j + 1) = temp;
}
}
}
}
```
在这个函数中,我们使用了冒泡排序算法来将数组按降序排序。该函数接受一个指向双精度型数组的指针和数组元素的个数作为参数。在排序时,我们使用了指针运算来访问和操作数组元素,而不是使用下标运算符。这样可以使代码更加简洁和高效。
使用示例:
```c
#include <stdio.h>
void sort(double *p, int n);
int main() {
double arr[] = {3.2, 5.4, 1.1, 9.8, 2.3};
int n = sizeof(arr) / sizeof(double);
sort(arr, n);
printf("Sorted array in descending order:\n");
for (int i = 0; i < n; i++) {
printf("%.2f ", arr[i]);
}
return 0;
}
// Output:
// Sorted array in descending order:
// 9.80 5.40 3.20 2.30 1.10
```