本题要求编写程序,输入n个实数,使用指针引用的方式将它们按从大到小的顺序排列。 输入格式: 输入第一行给出一个正整数n(2≤n≤10),输入第二行给出n个实数,其间以空格分隔。 输出格式: 输出从大到小排好序的n个数(保留2位小数),每个数之间空一格,行末没有空格。用c语言
时间: 2024-05-05 09:18:19 浏览: 140
来实现的话,代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
void sort(float *arr, int n) {
for(int i=0; i<n-1; i++) {
for(int j=i+1; j<n; j++) {
if(arr[j] > arr[i]) {
float temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
}
int main() {
int n;
scanf("%d", &n);
float *arr = (float *)malloc(n*sizeof(float));
for(int i=0; i<n; i++)
scanf("%f", &arr[i]);
sort(arr, n);
for(int i=0; i<n; i++)
printf("%.2f%c", arr[i], i==n-1 ? '\n' : ' ');
free(arr);
return 0;
}
```
如果需要将程序改成C++语言的话,可以在程序开头添加
```c++
#include <iostream>
#include <algorithm>
using namespace std;
```
然后将main函数改成
```c++
int main() {
int n;
cin >> n;
float *arr = new float[n];
for(int i=0; i<n; i++)
cin >> arr[i];
sort(arr, arr+n, greater<float>());
for(int i=0; i<n; i++)
cout << fixed << setprecision(2) << arr[i] << (i==n-1 ? "\n" : " ");
delete [] arr;
return 0;
}
```
这是使用STL的算法库进行排序的写法。
阅读全文