#include #include // 为了使用 qsort 函数 #include // 为了使用 fabs 函数 // 比较函数:按照绝对值从大到小排序 int compare(const void *a, const void *b) { float abs_a = fabs(*(const float *)a); float abs_b = fabs(*(const float *)b); if (abs_a < abs_b) return 1; // 注意这里是从大到小排序 if (abs_a > abs_b) return -1; return 0; } int main() { float *nums; int n = 10; // 输入的数目为 10 // 动态分配内存来存储输入的浮点数 nums = (float *)malloc(n * sizeof(float)); if (nums == NULL) { fprintf(stderr, "Memory allocation failed.\n"); return 1; } // 输入10个浮点数 int i; for (i = 0; i < n; ++i) { scanf("%f", &nums[i]); } // 使用 qsort 函数对数组进行排序,使用绝对值从大到小排序 qsort(nums, n, sizeof(float), compare); // 输出排序后的结果,每个数保留小数点后两位有效数字 for (i = 0; i < n; ++i) { printf("%.2f", nums[i]); if (i < n - 1) { printf(","); } } printf("\n"); // 释放动态分配的内存 free(nums); return 0; }