Partage
  • Partager sur Facebook
  • Partager sur Twitter

[console] nombres

coment reprendre le/les premiers chiffres d'un nombre?

    29 mai 2006 à 17:06:08

    Bonjour a tous,

    J'ai un problème pour un de mes programes en console. Je voudrais pouvoir prendre le/les premiers chifre d'un nombre défini.

    Il faudrait une fonction, que je n'ai pas trouvé...

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      29 mai 2006 à 21:21:47

      Tu peut écrire le nombre dansune chaine de caractères, puis lire caractère par caractère les chiffres. Tu peut aussi obtenir tous les nombres dans l'ordre inverse en regardant la congruence modulo 10 du nombre (pour obtenir son chiffre des unités, ensuite tu le divise par dix et tu recommence autant de fois que nésséçaires).
      • Partager sur Facebook
      • Partager sur Twitter
        29 mai 2006 à 23:18:48

        int i = 255;
        char n[5] = {0};
        itoa(i, n, 10);
        printf("Le premier chiffre du nombre %d est %c", i, n[0]);


        Pas testé mais ça devrait marcher ;)

        "[console] nombres" <= Console c'est pas un langage mdrr ^^
        • Partager sur Facebook
        • Partager sur Twitter
          30 mai 2006 à 9:49:31

          Citation : ddx39

          itoa(i, n, 10);

          Cette fonction n'est pas standard.
          Utiliser sprintf() ou [C99] snprintf().
          • Partager sur Facebook
          • Partager sur Twitter
          Music only !
            30 mai 2006 à 11:13:13

            ben je pense que tu peux faire une fonction récursive :

            par exemple si tu veux le premier chiffre :

            tu fais une boucle ou tu regarde si ton nombre est plus petit que 10, si c'est le cas tu renvoie le chiffre (entre 1 et 9), sinon (10 ou plus) tu relance ta fonction pour la divizsion entiere de ton chiffre par 10).

            pour illustrer, voici comment ça se passerait :
            tu choisis ton chiffre, par exemple 1532
            tu regarde si 1532<10 :o
            non :euh: donc tu relance la fonction pour la division entiere de 1532/10
            tu regarde donc maintenant si 153<10 :colere2:
            ...
            etc.
            ...
            puis tu arrive à :
            1<10 c'est vrai!!!!!!!! :D

            il ne reste plus qu'à renvoyer le chiffre que tu obtient dans ton main.

            si tu veux les 2 premier chiffre tu compare avec 100 plutot que 10, etc.

            je te laisse taper le code, je n'ai pas vérifié mais ça devrait marcher, a moins que la récursivité soit pas trop à la mode en C, j'en ai pas trop utilisé dans ma longue expérience...de quelque mois! :p

            donc regarde si c'est bon et tiens moi au courant
            • Partager sur Facebook
            • Partager sur Twitter

            [console] nombres

            × 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