Partage
  • Partager sur Facebook
  • Partager sur Twitter

Incrémentation/Décrémentation et autres...O_O

Pas tout compris, et me pose des questions....

    14 février 2008 à 15:45:31

    Bonjour...j'ai un petit problème avec le tutoriel du Langage C, en effet je n'ai pas très bien compris ce qu^était tout ces problèmes d'incrémentations et décréementations. J'ai compris qu'ils servait à modifier la valeur d'un nobre et j'ai testé ceci dans une petite machine à addition, dont voici le code:

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. int main(int argc, char *argv[])
    4. {
    5.   long Resultat = 0, Nombre1 = 0, Nombre2 = 0;
    6.   printf("Entrez le premier nombre : ");
    7.   scanf("%ld", &Nombre1);
    8.   printf("Entrez le second nombre : ");
    9.   scanf("%ld", &Nombre2);
    10.   system("PAUSE");
    11.   Resultat= Nombre1 + Nombre2++;
    12.   printf("%ld + %ld = %ld\n", Nombre1, Nombre2, Resultat);
    13.   system("PAUSE");
    14.   return 0;
    15. }


    Lorsque je lance le programme au moment du résultat il m'affiche bien le nombre 1 normal + le nombre deux augmenté de 1 mais dans le résultat il me met le résultat de Nombre1 + Nombre2.

    Par exemple: Lorsque j'entre comme premier nombre 16, et comme second 36, la ligne de résultat me met: 16+37=52 et non pas 53. Qu'est-ce qui cloche...ou plûtot que manque t-il pour que le résultat soit correct? o_O Et si vous pouviez me réexpliquer ces histoire d'incrémentations ce serait bien sympa:)

    Merci beaucoup.
    • Partager sur Facebook
    • Partager sur Twitter
      14 février 2008 à 15:58:02

      Bonjour !

      Je te propose un petit exemple commenté :
      1. int i = 0, j = 0;
      2. j=i++; // equivalent à j = i puis i = i + 1, donc j = 0 et i = 1
      3. printf("%d %d\n",i,j); // affiche 1 et 0
      4. j=++i; // equivalent à i = i + 1 puis j = i, donc i = 2 et j = 2
      5. printf("%d %d\n",i,j); // affiche 2 et 2


      Conclusion :
      - lorsque '++' est placé après une variable, l'incrémentation se fait après que la valeur de cette variable ait été évaluée dans l'expression.
      - lorsque '++' est placé avant une variable, l'incrémentation se fait avant que la valeur de cette variable ait été évaluée dans l'expression.
      - idem pour '--'

      edits : nombreuses corrections désolé ! :-°
      • Partager sur Facebook
      • Partager sur Twitter
      Inkamath on GitHub - Interpréteur d'expressions mathématiques. Reprise du développement en cours.
        14 février 2008 à 16:02:48

        iNaKoll en tout cs merci beaucoup, car bien que le code ne m'ait pas trop aidé ta conclusion quant à elle m'a bien aidée.
        Je commence à y voir un peu plus clair:)
        • Partager sur Facebook
        • Partager sur Twitter
          14 février 2008 à 16:04:35

          De rien, ce fut un réel plaisir ^^
          Je suis content que tu aies compris du premier coup (malgré mon code un peu foireux avant édition !).
          • Partager sur Facebook
          • Partager sur Twitter
          Inkamath on GitHub - Interpréteur d'expressions mathématiques. Reprise du développement en cours.

          Incrémentation/Décrémentation et autres...O_O

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown