Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher combinaison de nombre, question

Sujet résolu
    13 septembre 2018 à 13:32:12

    Bonjour,

    Ayant fait la piscine de 42, j'ai une petite question sur un exercice.

    L'exercice est d'afficher: 01 02 03... 12 13 14 etc..

    Ma question est la suivante :

    while(c <= '9')

    {

    while (d <= '9')

    {

    write(1, &c, 1);

    write(1, &d, 1);

    write(1, "\n", 1);

    d++;

    }

    c++

    }

    Pourquoi le programme affiche : 

    00, 01, 02, 03 .. 09

    et pas

    00, 01, 02, 03 ... 10, 11 , 12


    Alors que 


    while(c++ <= '9')

    {

    d = c + 1;

    while (d <= '9')

    {

    write(1, &c, 1);

    write(1, &d, 1);

    write(1, "\n", 1);

    d++;

    }

    }

    Affiche bien 01, 02 ... 10, 12...

    Merci beaucoup !

    -
    Edité par ZBr 13 septembre 2018 à 13:35:36

    • Partager sur Facebook
    • Partager sur Twitter
      13 septembre 2018 à 14:40:48

      Hello,

      Penses à utiliser la balise de code sur le forum, c'est plus agréable à lire pour nous tous ;)

      Concernant ta question dans ton premier code d n'est pas remis à 0 à chaque tours de boucle de c.

      Donc au premier tour de boucle de c (c = 0) il t'affiche 01 02 ... 09.

      Puis c boucle jusqu'à 9 en ne faisant rien puisque d > 9, on ne rerentre donc jamais dans le while.

      Concernant ton second code, on ne remet pas d à 0 mais à c + 1.

      C'est pour éviter les doublons, de cette façon on va obtenir :

      01 02 ... 09 12 13 ... 19 23 24 ...

      Si tu veux avoir vraiment tout les chiffres, il faut bien remettre d à 0.

      Par ailleurs évite les incrémentation dans ta condition de boucle (type while (++c <= '9').

      C'est source d'erreur chez les débutants, et même quand tu maitrise le C c'est juste plus compliqué à lire qu'autre chose.

      • Partager sur Facebook
      • Partager sur Twitter
      Si debugger, c’est supprimer des bugs, alors programmer ne peut être que les ajouter - Edsger Dijkstra
        13 septembre 2018 à 16:52:02

        Je le ferais la prochaine fois :)

        Merci beaucoup pour cette réponse claire, j'ai compris ! :D

        • Partager sur Facebook
        • Partager sur Twitter

        Afficher combinaison de nombre, question

        × 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