排序-sort指针例子.c 723 B

123456789101112131415161718192021222324252627282930313233
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. // 比较函数,用于qsort排序
  5. int compare(const void *a, const void *b) {
  6. float abs_a = fabs(*(float*)a);
  7. float abs_b = fabs(*(float*)b);
  8. return (abs_b > abs_a) - (abs_b < abs_a);
  9. }
  10. int main() {
  11. int i;
  12. // 输入10个float实数
  13. float numbers[10];
  14. for (i = 0; i < 10; i++) {
  15. scanf("%f", &numbers[i]);
  16. }
  17. // 使用qsort对数组进行排序
  18. qsort(numbers, 10, sizeof(float), compare);
  19. // 以小数点后两位有效数字输出从大到小数列
  20. for (i = 0; i < 10; i++) {
  21. printf("%.2f", numbers[i]);
  22. if (i < 9) {
  23. printf(",");
  24. }
  25. }
  26. printf("\n");
  27. return 0;
  28. }