Programa de modo en C

En estadística matemática, un modo es un valor que ocurre la mayor cantidad de tiempo.

For Example - asumir un conjunto de valores 3, 5, 2, 7, 3. La moda de este conjunto de valores es 3, ya que aparece más que cualquier otro número.

Algoritmo

Podemos derivar un algoritmo para encontrar el modo, como se indica a continuación:

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

Pseudocódigo

Ahora podemos derivar el pseudocódigo usando el algoritmo anterior, de la siguiente manera:

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

Implementación

La implementación de este algoritmo se da a continuación:

#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;
}

Salida

La salida del programa debe ser:

Mode = 7
programas_matemáticos_en_c.htm