Partage
  • Partager sur Facebook
  • Partager sur Twitter

Aide pour l'exo 5

    20 août 2019 à 10:24:19

    bjr. je débute en programmation et je suis à l'exercice 5. j'utilise codeblock comme IDE. voici mon code et je ne comprend pas pourquoi ça ne fonctionne pas. est-ce que vous pouvez m'aider? mci bcp. :)

    • Partager sur Facebook
    • Partager sur Twitter
      20 août 2019 à 10:48:07

      Merci d'utiliser le bouton code </> du forum pour poster ton code !
      • Partager sur Facebook
      • Partager sur Twitter
        20 août 2019 à 10:56:15

        void ordonnerTableau (int tableau[], int tailleTableau)
        {
            int i=0,x=0,y=2;
            long z=1;
            for(y=2;y<=tailleTableau;y++)//calcul de la factorielle de tailleTableau
            {
                z=z*y;
            }
            for(i=0;i<=z;i++)//boucle pour ordonner le tableau
            {
                if (i>=tailleTableau)
                {
                    i=i%tailleTableau;
                }
                if (tableau [i]> tableau [i+1])
                {
                    x=tableau [i];
                    tableau[i]=tableau [i+1];
                    tableau [i+1]=x;
                }
        
            }
            tableau[tailleTableau-1]=x;
        }
        
        • Partager sur Facebook
        • Partager sur Twitter
          20 août 2019 à 12:28:59

          Je pense qu'il faut revoir ton algo, Ta boucle est une boucle sans fin car i sera toujours inférieur à la factorielle de tailleTableau ! factorielle qui n'est probablement pas utile pour cet exercice.

          As-tu fait et réussi les exercices précédents ?

          • Partager sur Facebook
          • Partager sur Twitter
            20 août 2019 à 18:27:10

            Merci. Voici les codes des exercices précédents:

            int sommeTableau(int tableau[], int tailleTableau)
            {
                int i=0, somme=0;
                while (i<tailleTableau)
                {
                    somme=somme+tableau[i];
                    i++;
                }
                return somme;
            }
            
            
            double moyenneTableau(int tableau[], int tailleTableau)
            {
                int i=0;
                double somme=0, moyenne=0;
                for (i=0 ; i<tailleTableau ; i++)
                {
                    somme=somme+tableau[i];
                }
                moyenne= somme/tailleTableau;
                return moyenne;
            }
            
            void copie(int tableauOriginal[],int tableauCopie[],int tailleTableau)
            {
                int i=0, x=0;
                for (i=0; i<tailleTableau; i++)
                {
                    tableauCopie[i]=tableauOriginal[x];
                    x++;
                }
            }
            
            void maximumTableau(int tableau[], int tailleTableau, int valeurMax)
            {
                int i=0;
                while (i<tailleTableau)
                {
                    if (tableau [i]>valeurMax)
                    {
                        tableau[i]=0;
                    }
                    i++;
                }
            }



            • Partager sur Facebook
            • Partager sur Twitter
              20 août 2019 à 18:54:21

              Ok, les exercices sont réussis.

              Pour le tri, je ne vois pas pourquoi tu utilises les factorielles. L'échanges des éléments deux à deux est une bonne voie, il suffis de le faire tant que le tableau n'est pas fini de trier. Ce qui implique de refaire la boucle plusieurs fois. Je te laisse chercher, le but est aussi de se creuser un peu la tête.

              (Il y a plusieurs méthode pour trier un tableau, tu pourra faire des recherche sur le net et quand tu aura avancé tu pourra les tester).

              • Partager sur Facebook
              • Partager sur Twitter
                20 août 2019 à 20:42:08

                En effet, j'ai essayé de trouver combien de fois je dois refaire la boucle avec les factorielles. Parce que les factorielles permettent de trouver le nombre de permutation possible. J'ai alors pensé que le nombre de boucle à faire était ce nombre de permutation. Mais apparement, l'idée était fausse. Je te remercie pour ces conseils. je vais chercher d'autre idée. merci. :)
                • Partager sur Facebook
                • Partager sur Twitter
                  22 août 2019 à 22:05:54

                  bsr Rouloude. je crois que j'ai fini l'exo 5. merci pour les conseils. voici le code que j'ai trouvé:

                  void ordonnerTableau (int tableau[], int tailleTableau)
                  {
                      int i=0,j=i+1,x=0;
                      for (i=0;i<tailleTableau-1;i++)
                      {
                          for (j=i+1;j<tailleTableau;j++)
                          {
                  
                              if (tableau[i]>tableau[j])
                                  {
                                      x=tableau [i];
                                      tableau[i]=tableau [j];
                                      tableau[j]=x;
                                  }
                          }
                      }
                  
                  }
                  



                  • Partager sur Facebook
                  • Partager sur Twitter

                  Aide pour l'exo 5

                  × 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