TP ASD Série 1 Exercice 1 Question 2

Vous avez vu dans le corrigé de la première question un exemple complet avec une fonction, une fonction annexe ainsi qu’un programme principal faisant appel à la première fonction, puis à la seconde en lui passant le résultat de la première.

Il y avait également dans ce corrigé là quelques commentaires pour vous expliquer comment on a évité quelques-unes des erreurs les plus récurrentes.

Dans ce qui suit et dans les corrigés suivants, nous nous limiterons à répondre à la question sans fournir un programme principal et sans répéter les commentaires précédents.

/**
 * Tester l'existence d'une valeur donnée val dans un tableau trié (en ordre croissant) de n entiers.
 * @param val
 * @param tab
 * @param n
 * @returns -1 si la valeur val n'existe pas dans le tableau, sinon la position de la première occurrence est retournée
 */
int existence_val( int const val, int const tab[], int const n) {
    if ( 0 == n ) {
        return -1;
    }

    int i = 0;
    while ( n - 1 > i && val > tab[i] ) {
        i++;
    }
    //printf("i: %d\ttab_i: %d\n", i, tab[i]); // Ce type d'affichage peut être utile pour le débogage/débugage.
    if( tab[i] == val ) {
        return i;
    }

    return -1;
}

Laisser un commentaire

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