Partage
  • Partager sur Facebook
  • Partager sur Twitter

Répéter un nombre de fois compris entre 2 entier

Sujet résolu
    25 février 2022 à 23:14:22

    Bonsoir

    Désolé pour le titre pas forcement explicite 

    Voila je doit crée un programme qui prend 2 valeur imaginons 10 et 16, la sortie du programme doit s'affiché ainsi 

    10

    11

    12

    13

    14

    15

    16

    Voici mon programme 

     #include <stdio.h>
    #define repeat(nb) for (int _loop = 1, _max = (nb); _loop <= _max; _loop++)
    
    
    int main()
    {
      int tMin;
      int tMax;
      int result;
    
      scanf("%d", &tMin);
      scanf("%d", &tMax);
    
      result = tMin;
      repeat(result)
      { 
        printf("%d\n", result);
        result++;
      }
    }

    J'ai mis result = tMin mais j'ai bien compris que la valeur allait se répéter 10x par exemple si on entre 10 en valeur tMin, est donc dépassé le calcul voulus 

    Ma question est la suivante qu'elle est la formule ou le paramètre qui doit précisé dans la program pour que la boucle se répète jusqu'a atteindre la valeur de tmax

    (Je sais qu'il ya la boucle while etc mais j'essaye d'abord de m'exercé ainsi) 

    Re j'ai réussis 

    #include <stdio.h>
    #define repeat(nb) for (int _loop = 1, _max = (nb); _loop <= _max; _loop++)
     
     
    int main()
    {
      int tMin;
      int tMax;
      int result;
     
      scanf("%d", &tMin);
      scanf("%d", &tMax);
     
      result = tMax - tMin;
      repeat(result + 1)
      {
        printf("%d\n", tMin);
        tMin++;
      }
    }



    -
    Edité par leprincefou 25 février 2022 à 23:58:28

    • Partager sur Facebook
    • Partager sur Twitter
    Notre mesure du possible rend possible l'impossible  
      26 février 2022 à 2:25:22

      Pourquoi vous force-t-on à utiliser cette stupide macro repeat?
      for(int i=tMin; i<=tMax; i++) printf("%d\n", i);
      • Partager sur Facebook
      • Partager sur Twitter

      Le Tout est souvent plus grand que la somme de ses parties.

        26 février 2022 à 18:00:27

        leprincefou a écrit:

        Re j'ai réussis 

        Bravo !

        Maintenant, il faut le faire en utilisant la boucle for !

        Ensuite avec la boucle while !

        Et si tu t'en sens capable avec une fonction récursive !

        • Partager sur Facebook
        • Partager sur Twitter
        ...
          26 février 2022 à 18:40:08

          Voila avec la boucle while 

          #include <stdio.h>
          #define repeat(nb) for (int _loop = 1, _max = (nb); _loop <= _max; _loop++)
            
            
          int main()
          {
            int tMin;
            int tMax;
            //int result;
            
            scanf("%d", &tMin);
            scanf("%d", &tMax);
            
            //result = tMax - tMin;
            while(tMin < tMax + 1)
            {
              printf("%d\n", tMin);
              tMin++;
            }
          }

          La boucle for j'en ai pas besoin la ou je vais y favorise la boucle while 

          Tu pourrais m'expliquer avec une fonction récursive avec tes mots s'il te plait 

          • Partager sur Facebook
          • Partager sur Twitter
          Notre mesure du possible rend possible l'impossible  
            26 février 2022 à 18:53:09

            Une fonction récursive, c'est une fonction qui s'appelle elle même !
            • Partager sur Facebook
            • Partager sur Twitter
            ...
              26 février 2022 à 19:24:25

              Hello,

              Les compilateurs deviennent de plus en plus intelligents, et donc le tien a sans doute compris que tu voulais écrire

               while(tMin <= tMax)


              Pas besoin de faire une addition qui n'est pas nécessaire

              -
              Edité par edgarjacobs 26 février 2022 à 19:26:17

              • Partager sur Facebook
              • Partager sur Twitter

              On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                26 février 2022 à 19:25:40

                Une autre façon tordue de faire des boucles. :)
                Pour le while, tu aurais pu faire:
                   while(tMin <= tMax)
                • Partager sur Facebook
                • Partager sur Twitter

                Le Tout est souvent plus grand que la somme de ses parties.

                  26 février 2022 à 19:47:31

                  Comment ça pierrot ? ya quoi de tordu ? 

                  Merci edgar ses noté 

                  rouloude ok je vais allé voir c'est quoi exactement 

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Notre mesure du possible rend possible l'impossible  
                    26 février 2022 à 20:04:42

                    leprincefou a écrit:

                    La boucle for j'en ai pas besoin 

                    Je trouve que, pour cet exercice, c'est la boucle 'for' qui vient naturellement à l'esprit : « pour k = tmin à k = tmax, afficher k ». Le 'for' est fait pour ça.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      26 février 2022 à 20:10:29

                      Allez, avec la fonction récursive :

                      #include <stdio.h>
                      
                      void aff_serie(int debut, int fin)
                      {
                          printf("%d\n", debut);
                          if(debut==fin) return;
                          aff_serie(debut+1, fin);
                      }
                      
                      int main(void)
                      {
                        int tMin;
                        int tMax;
                      
                        scanf("%d", &tMin);
                        scanf("%d", &tMax);
                      
                        aff_serie(tMin, tMax);
                      
                        return 0;
                      }



                      • Partager sur Facebook
                      • Partager sur Twitter
                      ...
                        26 février 2022 à 20:12:45

                        Robun Oui faut que je regarde comment elle fonctionne même si je l'utilise pas

                        Ah merci rouloude tu crée une fonction que tu rappel ensuite dans ton main c'est sa la récursivité ? appelé une fonction 

                        -
                        Edité par leprincefou 26 février 2022 à 20:14:00

                        • Partager sur Facebook
                        • Partager sur Twitter
                        Notre mesure du possible rend possible l'impossible  
                          26 février 2022 à 20:18:24

                          Regarde bien le code de la fonction, elle se rappelle elle même à la ligne 7. C'est ça une fonction récursive.

                          Tu n'a peut-être pas encore vu les fonction ? Si c'est le cas tu reviendras dessus un peu plus tard.

                          • Partager sur Facebook
                          • Partager sur Twitter
                          ...
                            26 février 2022 à 20:22:40

                            Ah oui j'ai loupé la ligne 7

                            j'ai pas encore vue mais j'y arrive rapidement 

                            • Partager sur Facebook
                            • Partager sur Twitter
                            Notre mesure du possible rend possible l'impossible  
                              27 février 2022 à 2:23:22

                              > Robun Oui faut que je regarde comment elle fonctionne même si je l'utilise pas
                              Tu aurais tort de ne pas l'utiliser.
                              Ça peut grandement simplifier le code et le rendre plus clair dans de nombreuses situations.
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Le Tout est souvent plus grand que la somme de ses parties.

                              Répéter un nombre de fois compris entre 2 entier

                              × 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