#include "mesure.h" #include #include #include #include long msr_somme (char *liste_entiers[], size_t nb_elements) { size_t i; long som = 0; for (i = 0; i < nb_elements; i++) som += strtol (liste_entiers[i], NULL, 10); return som; } long msr_max (char *liste_entiers[], size_t nb_elements) { size_t i; long max; assert (nb_elements != 0); max = strtol (liste_entiers[0], NULL, 10); for (i = 1; i < nb_elements; i++) { long l = strtol (liste_entiers[i], NULL, 10); max = max < l ? l : max; } return max; } static unsigned long frequence (char *liste_entiers[], size_t nb_elements, long elt) { size_t i; unsigned long cpt = 0; for (i = 0; i < nb_elements; i++) cpt += elt == strtol (liste_entiers[i], NULL, 10); return cpt; } static int appartient (char *liste_entiers[], size_t nb_elements, long elt) { size_t i; for (i = 0; i < nb_elements; i++) if (elt == strtol (liste_entiers[i], NULL, 10)) return 1; return 0; } long msr_doublon (char *liste_entiers[], size_t nb_elements) { size_t i; unsigned long cpt = 0; for (i = 0; i < nb_elements - 1; i++) cpt += frequence (liste_entiers + i + 1, nb_elements - i - 1, strtol (liste_entiers[i], NULL, 10)); return cpt; } long msr_repetition (char *liste_entiers[], size_t nb_elements) { size_t i; unsigned long cpt = 0; for (i = 0; i < nb_elements - 1; i++) { long val_i = strtol (liste_entiers[i], NULL, 10); if (!appartient (liste_entiers, i, val_i)) cpt += appartient (liste_entiers + i + 1, nb_elements - i - 1, val_i); } return cpt; }