函数的功能是对参数p传送的首地址,n为元素个数的双精度型数组按降序排序。# include < stdio.h # include < stdlib.h > void Fun ( double * int );/ /原型声明 void SaveRes ( void ) ; void fun ( double *p , int n )
时间: 2024-03-17 12:47:32 浏览: 112
这个函数的功能是对传入的双精度型数组按照降序进行排序。函数的参数包括一个指向双精度型数组的指针p,以及数组中元素的个数n。函数内部通过使用标准库函数qsort()来实现排序功能,具体实现可以参考下面的代码:
```
#include <stdio.h>
#include <stdlib.h>
int compare(const void *a, const void *b){
double x = *(double*)a;
double y = *(double*)b;
if(x < y) return 1;
if(x > y) return -1;
return 0;
}
void fun(double *p, int n){
qsort(p, n, sizeof(double), compare);
}
int main(){
double arr[] = {3.2, 1.7, 5.4, 2.3, 4.1};
int n = sizeof(arr)/sizeof(arr[0]);
fun(arr, n);
for(int i=0; i<n; i++){
printf("%.2f ", arr[i]);
}
return 0;
}
```
其中compare()函数用于比较两个双精度型变量的大小关系,根据需要返回1、0或-1,这个函数会被qsort()调用来实现排序。在函数fun()中,我们直接调用qsort()函数来进行排序,完成后数组p就已经按照降序排列好了。最后在主函数中我们可以输出排列好的数组来验证函数的正确性。
阅读全文