Learn-c-by-examples-mode-program-in-c

提供:Dev Guides
移動先:案内検索

Cのモードプログラム

統計計算では、モードは最大の回数発生する値です。

-値3、5、2、7、3のセットを想定します。 この値セットのモードは、他の数字よりも多く表示されるため、3です。

アルゴリズム

以下に示すように、モードを見つけるためのアルゴリズムを導き出すことができます-

START
   Step 1 → Take an integer set A of n values
   Step 2 → Count the occurence of each integer value in A
   Step 3 → Display the value with highest occurence
STOP

疑似コード

次のように、上記のアルゴリズムを使用して擬似コードを導出できます-

procedure mode()

   Array A
   FOR EACH value i in A DO
      Set Count to 0
      FOR j FROM 0 to i DO
         IF A[i] = A[j]
            Increment Count
         END IF
      END FOR

      IF Count > MaxCount
         MaxCount =  Count
         Value    =  A[i]
      END IF
   END FOR
   DISPLAY Value as Mode

end procedure

実装

このアルゴリズムの実装は以下のとおりです-

#include <stdio.h>

int mode(int a[],int n) {
   int maxValue = 0, maxCount = 0, i, j;

   for (i = 0; i < n; ++i) {
      int count = 0;

      for (j = 0; j < n; ++j) {
         if (a[j] == a[i])
         ++count;
      }

      if (count > maxCount) {
         maxCount = count;
         maxValue = a[i];
      }
   }

   return maxValue;
}

int main() {
   int n = 5;
   int a[] = {0,6,7,2,7};

   printf("Mode = %d ", mode(a,n));

   return 0;
}

出力

プログラムの出力は次のようになります-

Mode = 7