Probleme avec un exercice sur borland C

Bonjour,

Ecrire un programme qui lit un nombre entier N formé de 4 chiffres donnée par l'utilisateur et qui calcule et affiche chaque chiffre composant le nombre N sur une ligne
Exemple :
Pour N=4963,le programme affiche :
le chiffre 1 est : 4
le chiffre 2 est : 9
le chiffre 3 est : 6
le chiffre 4 est : 3
Sur borland C
merci bcp

14 réponses

  1. Contributeur
    Bonjour,

    Soit a1, a2, a3, a4 les chiffres des milliers, centaines, dizaines et unité.
    Pour trouver a1, une simple division par 1000 fait l'affaire.
    Pour trouver a2, il faut recalculer N qui vaudra N modulo 1000, et a2 vaudra N/100.
    Etc.

    Je te laisse poster le début du code pour qu'on puisse te corriger éventuellement.

    Cdlt,
    0
    1. aide moi j'ai rien compris c'est tres difficle
      0
      1. Contributeur
        Beh je t'ai aidé.
        Dis-moi plutôt ce que tu trouves difficile ?
        Si tu trouves ça trop difficile, fais le programme lorsque l'utilisateur tape un seul chiffre. Par exemple, le chiffre 5. Après, tu feras pour deux chiffres comme 14.
        Etc.
        0
        1. j'ai fait un programme mais c'est nul
          #include <stdio.h>
          #include <conio.h>
          main()
          {
          double N,A1,A2;
          double reste;

          printf("Introduisez le nombre N : ");
          scanf("%lf",N);
          A1=N/10;

          A2=reste;
          printf("%lf 10 et %lf 1 \n",1ch,2ch);

          getch();
          }
          0
          1. Contributeur
            C'est un début.
            Je t'ai corrigé ce qui n'allait pas. Et je t'ai mis sur la piste.
            A toi de comprendre l'algorithme, de faire des tests et de remplir les petits points du programme suivant :
            #include <stdio.h> 
             
            int main(void) 
            { 
            int N,A1; 
            int reste; 
            
            /*div contient 1 si le nombre est compris entre 0 et 9, 10 si c'est entre 10 et 99, ...*/
            int div=1000;
            
            printf("Introduisez le nombre N : "); 
            scanf("%d",&N); 
            reste=N;
            
            while(...) {
                 /*on récupère le ch*/
                A1=reste/...;
                reste=reste%...;
                div=div/...;
                printf("chiffre=%d\n",...);
            }
            getchar();
            return 0; 
            }
            

            Ce programme ensuite devra être amélioré pour calculer la valeur de div tout seul, en fonction de ce que l'utilisateur tape (prochaine étape) ;-))).

            Cdlt,
            0
            1. j'ai rien compris
              fait moi le programme et je vais le comprendre parceque
              0
              1. Contributeur
                Non désolé, je ne fais pas ton devoir.
                Si tu veux de l'aide, formule clairement ce qui te pose problème et on t'expliquera.
                Je t'ai déjà donné le squelette de ton programme...
                0
                1. bonjour

                  pour faire un programme dans ce genre ce n'est pas trop compliqué (comme fiddy je ne le ferai pas a ta place quand même)

                  dans les opérations en C tu a le modulo (%) qui te renvoie le reste de la division
                  par exemple 10%3 te renverra 1 (10/3 = 3 et le reste est 1)

                  dans ton cas tu dois faire la même chose

                  Soit a1, a2, a3, a4 les chiffres des milliers, centaines, dizaines et unité.
                  Pour trouver a1, une simple division par 1000 fait l'affaire.
                  Pour trouver a2, il faut recalculer N qui vaudra N modulo a1, et a2 vaudra N/100.
                  Etc.

                  (désolé pour le plagia^^)

                  tout est la
                  pour a1 tu fait une simple division par 1000 (par exemple 4527 /1000 = 4.527, donc comme c'est des entiers le programme renverra 4)

                  ensuite tu dois faire N % 1000 qui te retournera 527

                  tu dois donc calculer a2 a3 et a4 de la même facon

                  si tu ne comprend toujours pas dis nous exactement quelle partie tu ne comprend pas pour qu'on puisse t'expliquer clairement stp
                  0
                  1. mon probleme c'est comment faire la div sur c
                    0
                    1. Contributeur
                      On te l'a déjà dit.
                      toto=34/10; et toto vaudra 3
                      titi=34%10; et titi vaudra 4.
                      Cdlt,
                      0
                    2. je ne sais po comment l'appliquer mr fiddy walah je suis nul en programmation je te jure aide moi j'ai de le rendement du devoir
                      0
                  2. feddy en n'a pas encors fait while
                    et nous en travail sur
                    dev c++
                    0
                    1. #include <stdio.h>
                      #include <conio.h>
                      main(void)
                      {
                      int N,A1,A2,A3,A4;
                      int reste;
                      printf("Introduisez le nombre N : ");
                      scanf("%d",&N);
                      A1=N/1000;
                      reste=N%1000;
                      printf("le 1er chiffre est:A1");
                      A2=reste/100;
                      reste=A1%100;
                      printf("le 2eme chiffre est:A2");
                      A3=reste/10;
                      reste=A2%10;
                      printf("le 3eme chiffre est:A3");
                      A4=reste;
                      printf("le 4eme chiffre est :A4");
                      getch();
                      }
                      0
                      1. fedyy j'ai fait ce programme corrige le moi stp
                        0
                        1. #include <stdio.h>
                          #include <conio.h>
                          main(void)
                          {
                          int N,A1,A2,A3,A4;
                          int reste;
                          int div=1000;
                          printf("Introduisez le nombre N : ");
                          scanf("%d",&N);
                          A1=N/1000;
                          reste=N%1000;
                          div=div/1000;
                          printf("1er chiffre=%d\n",A1);
                          A2=reste/100;
                          reste=A1%100;
                          div=div/100;
                          printf("2eme chiffre=%d\n",A2);
                          A3=reste/10;
                          reste=A1%10;
                          div=div/10;
                          printf("3eme chiffre=%d\n",A3);
                          A4=reste/1;
                          reste=A2%1;
                          div=div/1;
                          printf("4eme chiffre=%d\n",A4);
                          getch();
                          }
                          j'ai fais ce programme mais j'ai un blem dans le chifre 3 et 4
                          0
                          1. A1=N/1000;
                            reste=N%1000;
                            div=div/1000;


                            essai de faire
                            A1 = N/1000;
                            N = N%1000;

                            A2 = N/100;
                            N = N%100;

                            ...

                            tu n'a pas besoin de faire une variable exprès tu peux modifier directement la valeur de ta variable N
                            il me semble que tu peux même faire N %= 1000 pour aller plus vite mais je ne suis plus sur (je sais que ca marche avec += et -= mais pour %= faudrait vérifier)
                            0
                          2. Contributeur
                            Affirmatif ;-)))
                            0
                          3. deja fait merci
                            0
                        2. Contributeur
                          Ah, tu me fais plaisir. Le principe est là, ce n'est plus que des erreurs de programmation.
                          Je te corrige :
                          Attention à tes printf, il faut sortir la variable comme dans l'exemple ci-dessous :
                          printf("le 1er chiffre est: %d\n",A1);

                          %d sera remplacé par la variable A1 et \n sautera une ligne.
                          0