如果清單中的元素按順序排列,則將清單中的元素分成兩部分且兩邊元素數量相等的中間值稱為中位數。
元素個數為奇數只有一個中間值;而;偶數個項目有兩個中間值。
因此,偶數個項目的中位數被指定為兩個中間值的平均值。
請參考下面給出的演算法來計算中位數。
步驟 1 - 將項目讀入數組,同時保留項目的計數。
步驟 2 - 依升序對項目進行排序順序。
第 3 步 - 計算中位數。
在找到中位數之前對數字進行排序的邏輯如下-
for (i = 1 ; i <= n-1 ; i++){ for (j = 1 ; j <= n-i ; j++){ if (a[j] <= a[j+1]){ t = a[j]; a[j] = a[j+1]; a[j+1] = t; } else continue ; } }
用於尋找清單中位數的邏輯如下-
if ( n % 2 == 0) median = (a[n/2] + a[n/2+1])/2.0 ; else median = a[n/2 + 1];
以下是計算給定數字中位數的C 程式-
現場示範
#include<stdio.h> #define N 10 main( ){ int i,j,n; float median,a[N],t; printf("Enter the number of items</p><p>"); scanf("%d", &n); /* Reading items into array a */ printf("Input %d values </p><p>",n); for (i = 1; i <= n ; i++) scanf("%f", &a[i]); /* Sorting begins */ for (i = 1 ; i <= n-1 ; i++){ /* Trip-i begins */ for (j = 1 ; j <= n-i ; j++) { if (a[j] <= a[j+1]) { /* Interchanging values */ t = a[j]; a[j] = a[j+1]; a[j+1] = t; } else continue ; } } /* sorting ends */ /* calculation of median */ if ( n % 2 == 0) median = (a[n/2] + a[n/2+1])/2.0 ; else median = a[n/2 + 1]; /* Printing */ for (i = 1 ; i <= n ; i++) printf("%f ", a[i]); printf("</p><p></p><p>Median is %f</p><p>", median); }
#執行上述程式時,會產生以下輸出-
Enter the number of items 5 Input 5 values 2.3 1.2 3.8 4.6 8.9 8.900000 4.600000 3.800000 2.300000 1.200000 Median is 3.800000
以上是尋找給定清單的中位數的C程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!