ホームページ > バックエンド開発 > C++ > 指定されたリストの中央値を見つけるための C プログラム

指定されたリストの中央値を見つけるための C プログラム

PHPz
リリース: 2023-09-14 13:21:08
転載
1065 人が閲覧しました

指定されたリストの中央値を見つけるための C プログラム

リスト内の要素が順番に配置されている場合、リスト内の要素を 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];
ログイン後にコピー

Example

次は、指定された数値の中央値を計算する 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート