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

   2025-02-15 4950
核心提示:要求一个数组的中位数,可以按照以下步骤进行:首先,对数组进行排序。可以使用C语言中的排序函数qsort来实现。#include stdio.h

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

首先,对数组进行排序。可以使用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;}
排序后,如果数组长度为奇数,则中位数为排序后数组的中间值;如果数组长度为偶数,则中位数为排序后数组的中间两个数的平均值。
#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;}

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

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言