用C语言编写一个函数的功能是对参数p传送的首地址,n为元素个数的双精度型数组按降序排序
时间: 2024-05-03 17:17:46 浏览: 109
下面是一个用C语言编写的函数,可以对传入的双精度型数组按降序排序:
```c
void sort_descending(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;
}
}
}
}
```
这个函数使用了冒泡排序算法,每次比较相邻两个元素的大小,并根据需要交换它们的位置,最终可以将数组按降序排序。在函数中,参数p是指向数组首元素的指针,n是数组中元素的个数。函数结束后,原数组中的元素已经按照降序排列。
相关问题
用C语言设计一个函数功能是对参数p传送首地址,n为元素个数的双精度型数组按降序排列
好的,以下是用C语言设计的该函数:
```c
void descending_order(double *p, int n) {
int i, j;
double temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (*(p + j) < *(p + j + 1)) {
temp = *(p + j);
*(p + j) = *(p + j + 1);
*(p + j + 1) = temp;
}
}
}
}
```
该函数使用了冒泡排序算法,从数组第一个元素开始,比较相邻的两个元素大小,如果前一个元素大于后一个元素,则交换它们的位置,直到将整个数组按降序排列。请注意,该函数没有返回值,因为它直接修改了传递给它的数组。要调用该函数,可以使用以下代码:
```c
double arr[5] = {5.6, 3.2, 8.9, 1.2, 4.5};
int n = sizeof(arr) / sizeof(double);
descending_order(arr, n);
```
此时,数组arr将按降序排列。希望这个函数能够满足您的需求。
用c语言编写函数的功能是对参数p传送的首地址,n为元素个数的双精度型数组按降序排序
以下是用C语言编写对双精度型数组按降序排序的函数:
```c
void descendingSort(double *p, int n) {
int i, j;
double temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (p[i] < p[j]) {
temp = p[i];
p[i] = p[j];
p[j] = temp;
}
}
}
}
```
该函数的实现使用两层循环,第一层循环从数组的第一个元素开始,到倒数第二个元素结束;第二层循环从第一层循环的下一个元素开始,到数组的最后一个元素结束。在循环中,如果当前元素比后面的元素小,则交换它们的位置,这样每次循环都会将当前最大的元素放到前面。最终得到的数组就是按降序排列的。
阅读全文