Pour illustrer cette fonction compare
, considérons les fonctions identite
et abs
:
int identite(int x) { return x; }
int abs(int x) {
if (x>=0)
return x;
else
return -x;
}
Dans l'intervalle [0,2] (min=0, max=2)
, compare
retourne la valeur 3
lorsque elle est appliquée aux fonctions identite
et abs
. Dans l'intervalle [-1,1] (min=-1, max=1)
, elle retourne 2
lorsqu'elle est appliquée aux mêmes fonctions.
Proposez le corps de la fonction compare dont la spécification est reprise ci-dessous:
/*
* @pre min<max, f1!=NULL, f2!=NULL
* @post applique les fonctions f1 et f2 à tous les entiers dans l'intervalle fermé [min,max]
* et retourne le nombre de fois où ces deux fonctions donnent le même résultat
*/
int compare(int min, int max, int f1(int), int f2(int)) {