Récuperer un indice dans un tableau

Signaler
Messages postés
15
Date d'inscription
mercredi 14 mai 2008
Statut
Membre
Dernière intervention
2 septembre 2008
-
Messages postés
482
Date d'inscription
vendredi 26 août 2005
Statut
Membre
Dernière intervention
5 décembre 2009
-
Bonjour,

je souhaite récuperer l'indice d'un element d'un tableau;
sachant que dans le cas ou la valeur n'existe pas dans le tableau je renvoie l'indice de la premiere valeur inferieure à celle que je cherche.

par exemple:
tab[5] = {10,15,20,25,30}; //( les valeurs dans le tableau sont mises d1 maniere croissante) si la valeur 20; la fonction doit renvoyer  i 2;si la valeur  18; la fonction doit renvoyer i1;

Merci a vous tous;

1 réponse

Messages postés
482
Date d'inscription
vendredi 26 août 2005
Statut
Membre
Dernière intervention
5 décembre 2009

Bonjour,

Voici un petit exemple :

#include <stdio.h>





int GetIndice
(
    const int* paiTab     // E:tableau
   ,int        iTailleTab // E:longueur du tableau
   ,int        iValeur    // E:valeur à chercher
)                         // S:indice (-1 si valeur < tableau[0])
{
   for (int i=iTailleTab-1 ; i>=0 ; --i)
      if (iValeur >= paiTab[i]) return i;
   return -1;
}





int main(void)
{
   const int iTailleTab = 5;
   int aiTab[iTailleTab] = {10,15,20,25,30};



   printf("Indice de %d = %d\n",-9,GetIndice(aiTab,iTailleTab,-9));
   printf("Indice de %d = %d\n",12,GetIndice(aiTab,iTailleTab,12));
   printf("Indice de %d = %d\n",18,GetIndice(aiTab,iTailleTab,18));
   printf("Indice de %d = %d\n",20,GetIndice(aiTab,iTailleTab,20));
   printf("Indice de %d = %d\n",99,GetIndice(aiTab,iTailleTab,99));
   return 0;
}




Ce qui donne :

Indice de -9 = -1
Indice de 12 = 0
Indice de 18 = 1
Indice de 20 = 2
Indice de 99 = 4



Jean-François