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 :

problème d'incrémentation de variable


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 106
    Par défaut problème d'incrémentation de variable
    Bonjour,

    j'ai un problème d'incrementation, je n'arrive pas à incrementer mon numdoss.
    Est ce que quelqu'un peux me dire pourquoi svp?

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    void main()
    { 
        DOSS *pdebD = NULL;
        NAT *pdebN = NULL;
        RANG *pdebR = NULL;
        char nomlu[31];
        int nbitot=0;            //total nombre inscrit
        int numdoss=0;            //numéro de dossard qui s'incrémente
        char code;
    
        //-----------------------------------Prototype fonction--------------------------------------
        void inscrire (char [],DOSS **,NAT **,int *, int *);                        // inscription du skieur
        void desistement(char [],DOSS **, int *);                    // desinscription du skieur
    
        //-------------------------------------------------------------------------------------------
        gets (nomlu);
            while(*nomlu !='*')
            {        
                    system ("cls");
                    printf ("Pour un desistement veuillez saisir la O/N\n\n");
                    code = getchar ();
    
                    if (code == 'n' || code == 'N')
                        {
                            inscrire (nomlu,&pdebD,&pdebN,&nbitot,&numdoss);                // inscription
                        }
                        else
                        {
                            desistement (nomlu,&pdebD,&nbitot);
                        }
                    fflush (stdin);
                    system ("cls");
                    printf ("Veuillez saisir le nom du participant ou * pour passer a la phase II\n\n");
                    gets (nomlu);
            }                
    
    
    void inscrire(char nomlu[],DOSS ** spD, NAT ** spN, int *nbitot, int *numdoss)                        
        {    
            
            int rep;
            DOSS ** cherchenom (char [],DOSS **,int *);
            NAT * inscrirenat(char [],NAT **);
            DOSS * pnouv;
            NAT * pn;
            spD = cherchenom (nomlu,spD,&rep);
            if (rep==1)
            {
                printf("Participant déjà inscrit\n");
                system ("pause");
                return;
            }
            *nbitot++;
            pnouv=(DOSS*)malloc (sizeof(DOSS));
            pnouv->nom = strdup (nomlu);
            pnouv->tps=-1;
            *numdoss++;
            pnouv->ndoss=*numdoss;
            pnouv->psD= *spD;
            *spD=pnouv;
            printf("Veuillez inscrire la nationalite\n");
            fflush(stdin);
            char zl[51];
            gets (zl); //lecture de la nationalité
            pn = inscrirenat (zl,spN);
            pnouv->pnat = pn;
        }
    DOSS ** cherchenom (char nomlu[],DOSS ** spD, int *rep)
        {
            int comp=1;
            for (;*spD && (comp = strcmp (nomlu,(*spD)->nom))>0;spD = &((*spD)->psD));
            if (comp==0) *rep=1; //Nom trouvé
            else *rep=0;
            return (spD);
        }

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 115
    Par défaut
    Sans parler du reste, en faisant ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void    foo(int *bar)
    {
      *bar++;
    }
    Tu incrémentes ton pointeur (donc bar), ici un compilateur correctement utilisé te dirait un message ressemblant à : warning: value computed is not used.

    Si tu veux incrémenter la valeur pointée par bar (donc *bar), tu disposes d'un outil fort sympathique, j'ai nomme les parenthèses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void    foo(int *bar)
    {
      (*bar)++;
    }
    Autrement, si tu as quelque chose contre les parenthèses, tu peux utiliser l'opérateur d'incrémentation à gauche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void    foo(int *bar)
    {
      ++*bar;
    }

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 106
    Par défaut
    Merci, tu as tout as fait raison

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XQUERY] problème d'incrémentation de variable
    Par amelbtb dans le forum XQUERY/SGBD
    Réponses: 3
    Dernier message: 29/05/2012, 14h57
  2. [XL-2003] Problème d'incrémentation de variable
    Par Sanegone67 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/08/2011, 14h11
  3. Problème d'incrémentation de variable!
    Par vgiant dans le forum C
    Réponses: 7
    Dernier message: 04/05/2009, 17h57
  4. [XSL]Problème de portée des variables
    Par djulesp dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/09/2004, 10h34
  5. [débutant][xsl]incrémenter une variable
    Par guitalca dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 01/04/2003, 15h19

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