Partage
  • Partager sur Facebook
  • Partager sur Twitter

Variable

    12 mars 2008 à 17:45:33

    Bonjour, je débute en C++ et j'ai un petit soucis (désolé si mon problème est tout bête) :
    quand on ferme une boucle, la variable que l'on a assigné est supprimée d'apres le cours de ce site et d'apres mes quelques essais sur mon compilateur. Une question me vient à l'esprit : comment fait-on en sorte que l'on garde une variable que l'on a créée dans la boucle à l'extérieur de cette boucle ?

    Par exemple, je suis en train de faire une méthode pour trouver le plus grand des nombres que l'on donne sous console (il y a autant de nombre que l'on veut), donc j'utilise une boucle qui permet de voir si ma variable "grand" est plus petite que "tableau[i]" (tableau[i] est le nombre du numéro "i" de la chaine de nombre donnée sous console). Si "grand" est plus petit que "tableau[i]" alors j'assigne "grand" à "tableau[i]". Juste avant la fin de la boucle, la variable "grand" est la plus grande des nombres donnés sous console mais à la fin de ma boucle, "grand" disparaît ...
    Je ne sais pas trop si avec les références, ça peut marcher.

    Aidez moi svp.
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      12 mars 2008 à 17:51:01

      Simplement en créant la variable avant la boucle.
      • Partager sur Facebook
      • Partager sur Twitter
        12 mars 2008 à 18:01:34

        je l'ai créée avant la boucle :
        int grand = 0
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          12 mars 2008 à 18:03:15

          Montre le code minimal.
          • Partager sur Facebook
          • Partager sur Twitter
            12 mars 2008 à 18:11:50

            int grand = 0
            for (i = 0;i < nombres;i++)
            {
            cin >> a[i];
            if (i = 0)
            {
            grand = a[i];
            }
            else
            {
            if (grand < a[i])
            {
            grand = a[i];
            }
            }
            }
            cout << "le plus grand nombre est : " << grand << endl;
            • Partager sur Facebook
            • Partager sur Twitter
              12 mars 2008 à 18:51:22

              1. int tableau[nombres], i = 0
              2.     int grand = 0
              3.     for (i = 0;i < nombres;i++)
              4.     {
              5.         cin >> tableau[i];
              6.         if (i = 0)
              7.           {
              8.                 grand = tableau[i];
              9.           }
              10.           else
              11.           {
              12.                 if (grand < tableau[i])
              13.                 {
              14.                          grand = tableau[i];      
              15.                 }
              16.           }  
              17.     }
              18.     cout << "le plus grand nombre est : " << grand << endl; /* grand = 0 ici ... */
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                12 mars 2008 à 18:59:06

                ligne 14 jamais exécutée : la condition de la ligne 10 empêche celle de la ligne 12 d'être vraie. Mauvaise conception.
                Si tu as rentré '0' lors du premier std::cin alors c'est normal que grand vaille 0. sinon, je ne sais pas.
                • Partager sur Facebook
                • Partager sur Twitter
                  13 mars 2008 à 11:03:57

                  Merci, ça marche maintenant, j'ai tout enlevé dans la boucle sauf la ligne 5, 12 et 14
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Variable

                  × 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