IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

récupérer un indice


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Points : 4
    Points
    4
    Par défaut récupérer un indice
    Bonjour,
    j'aimerais savoir comment retrouver l'indice d'une valeur donnée dans un tableau.

    Est-ce qu'il existe une fonction en "C" qui permet ça ?

  2. #2
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    946
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 946
    Points : 1 351
    Points
    1 351
    Par défaut
    Salut,
    Citation Envoyé par CraigHF Voir le message
    Est-ce qu'il existe une fonction en "C" qui permet ça ?
    Non. Il faut créer la fonction qui le fait.
    A+

    Pfeuh

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #include <stdio.h>
    #define NOT_FOUND -1
     
    int getindex(int value, int* tab, int size)
    {
        int index = 0;
     
        while(index < size)
        {
            if(tab[index] == value)
                return index;
            else
                index++;
        }
        return NOT_FOUND;
    }
     
    int main(void)
    {
        int tab[] = {7,45,98,65,12};
        int tabsize = sizeof tab / sizeof(int);
     
        printf("index = %i\n", getindex(7, &tab[0], tabsize));
        printf("index = %i\n", getindex(12, &tab[0], tabsize));
        printf("index = %i\n", getindex(124, &tab[0], tabsize));
     
        return 0;
    }

  3. #3
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Si le tableau est trié, tu peux utiliser bsearch() avec un peu d'arithmétique des pointeurs pour calculer l'indice.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

Discussions similaires

  1. récupérer les indices d'un partil_sort_copy
    Par keng83 dans le forum SL & STL
    Réponses: 1
    Dernier message: 24/10/2007, 21h00
  2. [Tableaux] Récupérer l'indice d'un tableau
    Par emageren dans le forum Langage
    Réponses: 2
    Dernier message: 03/11/2006, 10h21
  3. récupérer l'indice de la ligne séléctionner d'une MSFlexGrid
    Par awatif dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 25/09/2006, 12h50
  4. Récupérer l'indice d'une valeur donnée dans un select
    Par mgemc2 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/08/2006, 11h31
  5. Comment récupérer l'indice dans un TdxTreeList ?
    Par claude dans le forum Composants VCL
    Réponses: 5
    Dernier message: 20/12/2004, 15h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo