C语言中位数程序

中位值是排序列表中心的值。对于中位数,我们需要按升序或降序对列表进行排序。

例如以3,5,2,7,3这个数列作为输入列表。要找出中位数,首先我们将它重新排序为2,3,3,5,7,找到位置3,即:((5 + 1)/ 2)3,所以这个列表中的中位值是3

代码实现

该算法的实现程序如下 -

#include <stdio.h>

void swap(int *p,int *q) {
   int t;

   t=*p; 
   *p=*q; 
   *q=t;
}

void sort(int a[],int n) { 
   int i,j,temp;

   for(i=0;i<n-1;i++) {
      for(j=0;j<n-i-1;j++) {
         if(a[j]>a[j+1])
            swap(&a[j],&a[j+1]);
      }
   }
}

int main() {
   int a[] = {6,3,8,5,1};
   int n = 5;
   int sum,i;

   sort(a,n);

   n = (n+1) / 2 - 1;  // -1 as array indexing in C starts from 0

   printf("Median = %d ", a[n]);

   return 0;
}

执行上面示例代码,得到以下结果 -

Median = 5

上一篇: C语言数学计算程序 下一篇: C语言链表示例程序