リスト内の要素が順番に配置されている場合、リスト内の要素を 2 つの部分に分割し、両側の要素の数が等しい中央の値を中央値と呼びます。 。
要素の数が奇数の場合は中間値が 1 つだけあり、項目の数が偶数の場合は中間値が 2 つあります。
したがって、偶数の項目の中央値は、中央の 2 つの値の平均として指定されます。
中央値を計算するには、以下のアルゴリズムを参照してください。
ステップ 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 中国語 Web サイトの他の関連記事を参照してください。