c语言程序,函数的功能是对p传送的首地址,n为元素个数的双精度型数组按降序排列
时间: 2024-05-16 22:16:47 浏览: 7
以下是一个对双精度型数组按降序排列的C语言程序:
```c
#include <stdio.h>
void sort(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;
}
}
}
}
int main() {
double arr[] = {3.2, 4.5, 1.0, 0.5, 2.1};
int n = sizeof(arr) / sizeof(double);
sort(arr, n);
for (int i = 0; i < n; i++) {
printf("%f ", arr[i]);
}
return 0;
}
```
该程序中,sort函数对传入的双精度型数组按降序排列。主函数中定义了一个双精度型数组arr,并计算出其元素个数n,然后调用sort函数对arr进行排序。最后输出排序后的结果。
相关问题
c语言函数功能是对参数p传送的首地址,n为元素个数的双精度型数组按降序排序
以下是一个示例C语言函数,可以实现对双精度型数组按降序排序的功能:
```c
void sort(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+j) > *(p+i)) {
temp = *(p+i);
*(p+i) = *(p+j);
*(p+j) = temp;
}
}
}
}
```
该函数使用了冒泡排序算法,对参数p所指向的双精度型数组进行排序。函数中,n表示数组元素的个数,p表示数组的首地址。在排序过程中,每次比较相邻两个元素的大小,如果前一个元素比后一个元素小,则交换它们的位置。最终,数组中的元素按照降序排列。
用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将按降序排列。希望这个函数能够满足您的需求。