c语言怎么求一个数组的中位数

avatar
作者
猴君
阅读量:0

要求一个数组的中位数,可以按照以下步骤进行:

  1. 首先,对数组进行排序。可以使用C语言中的排序函数qsort来实现。
#include <stdio.h> #include <stdlib.h>  // 比较函数,用于排序 int compare(const void *a, const void *b) {     return (*(int*)a - *(int*)b); }  int main() {     int arr[] = {3, 1, 5, 2, 4};     int len = sizeof(arr) / sizeof(arr[0]);      // 对数组进行排序     qsort(arr, len, sizeof(int), compare);      // 打印排序后的数组     printf("Sorted array: ");     for (int i = 0; i < len; i++) {         printf("%d ", arr[i]);     }     printf("\n");      return 0; } 
  1. 排序后,如果数组长度为奇数,则中位数为排序后数组的中间值;如果数组长度为偶数,则中位数为排序后数组的中间两个数的平均值。
#include <stdio.h> #include <stdlib.h>  int compare(const void *a, const void *b) {     return (*(int*)a - *(int*)b); }  int main() {     int arr[] = {3, 1, 5, 2, 4};     int len = sizeof(arr) / sizeof(arr[0]);      // 对数组进行排序     qsort(arr, len, sizeof(int), compare);      // 打印排序后的数组     printf("Sorted array: ");     for (int i = 0; i < len; i++) {         printf("%d ", arr[i]);     }     printf("\n");      // 求中位数     int median;     if (len % 2 == 0) {         median = (arr[len/2 - 1] + arr[len/2]) / 2;     } else {         median = arr[len/2];     }      printf("Median: %d\n", median);      return 0; } 

以上代码先对数组进行排序,然后根据数组长度的奇偶性来求出中位数。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!