[问题描述]输入10个数,按绝对值从大到小排序后输出。(要求用指针做) [输入形式]输入10个float实数 [输出形式]以小数点后两位有效数字输出从大到小数列! [样例输入] 11.3 -24.1 31.6 -41 57.6 -68.1 72.5 -89.7 96.8-100.3[样例输出] -100.30,96.80,-89.70,75.50,-68.10,57.60, 41.00,31.60,-24.10,11.30 [样例说明]
时间: 2023-11-27 08:50:23 浏览: 94
以下是一种可能的实现方式:
```c
#include <stdio.h>
#include <stdlib.h> // 包含abs函数的头文件
void sort_abs(float *arr, int n) {
int i, j;
float tmp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (abs(arr[i]) < abs(arr[j])) { // 比较绝对值大小
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
}
int main() {
float arr[10];
int i;
for (i = 0; i < 10; i++) {
scanf("%f", &arr[i]);
}
sort_abs(arr, 10);
for (i = 0; i < 10; i++) {
printf("%.2f,", arr[i]);
}
printf("\n");
return 0;
}
```
程序首先定义了一个 `sort_abs` 函数,用于按绝对值从大到小排序输入的数组。然后在 `main` 函数中读入10个实数,并调用 `sort_abs` 函数对它们进行排序。最后按照小数点后两位有效数字的格式输出数组中的元素。
阅读全文