实数排序 分数 20 作者 张丽华 单位 嘉兴南湖学院 本题要求编写程序,输入n个实数,使用指针引用的方式将它们按从大到小的顺序排列。 输入格式: 输入第一行给出一个正整数n(2≤n≤10),输入第二行给出n个实数,其间以空格分隔。 输出格式: 输出从大到小排好序的n个数(保留2位小数),每个数之间空一格,行末没有空格。要求用指针
时间: 2024-02-01 16:13:10 浏览: 117
以下是一份基于冒泡排序的实现代码,使用指针引用实现:
```c++
#include <cstdio>
#include <algorithm>
using namespace std;
void sort_desc(double* arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (*arr[j] < *arr[j + 1]) {
swap(arr[j], arr[j + 1]);
}
}
}
}
int main() {
int n;
scanf("%d", &n);
double* arr[n];
for (int i = 0; i < n; i++) {
double x;
scanf("%lf", &x);
arr[i] = new double(x);
}
sort_desc(arr, n);
for (int i = 0; i < n; i++) {
printf("%.2lf", *arr[i]);
if (i != n - 1) {
printf(" ");
}
}
for (int i = 0; i < n; i++) {
delete arr[i];
}
return 0;
}
```
输入示例:
```
5
3.14 1.41 2.71 4.28 0.62
```
输出示例:
```
4.28 3.14 2.71 1.41 0.62
```
阅读全文