TP ASD Série 1 Exercice 1 Question 3

En ce qui concerne la fonction demandée dans cette question, il y a moyen de la réaliser de manière récursive en passant l’indice de départ et l’indice d’arrivée à cette fonction et en faisant appel à la fonction précédente qui teste l’existence après l’avoir modifiée pour accepter un nouveau paramètre servant à l’initialisation de l’indice i.

Sinon, il y a plus simple pour la réaliser. En réalité, cette fonction est aussi simple que la précédente, voyez par vous-même:

/**
 * Compter le nombre d'occurrences d'une valeur donnée val dans un tableau trié (en ordre croissant) de n entiers.
 * @param val
 * @param tab
 * @param n
 * @returns nombre d'occurrences
 */
int nombre_occurrences( int const val, int const tab[], int const n) {
    int i = 0, nb_occurrences = 0;
    while ( n - 1 > i && val >= tab[i] ) {
        if( tab[i] == val ) {
            nb_occurrences++;
        }
        i++;
    }

    if( tab[i] == val ) {
        nb_occurrences++;
    }

    return nb_occurrences;
}

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *