Partage
  • Partager sur Facebook
  • Partager sur Twitter

exercice 5 des tableaux

je débute lol

Sujet résolu
    24 octobre 2008 à 17:04:37

    Voila, j'ai écrit un peu, mais bref, en faite je sais pas trop faire quoi, le but étant là de remettre dans l'ordre les nombres du tableaux... Si quelqu'un peut m'aider, je veux bien ^^
    Je me doute bien de certaine chose, comme par exemple, je pense qu'il y aura un problème avec le nombre le plus grand, car avec +1 dans un tableau défini, il retombe sur rien, enfin bref, c'est un peu confus...


    #include <stdio.h>
    #include <stdlib.h>
    
    void ordonnerTableau(long tableau[], long tailleTableau);
    
    int main(int argc, char *argv[])
    
    {
    	long tableau[5] = {10, 4, 9, 34, 2}, tailleTableau = 5;
        long i = 0;
        ordonnerTableau(tableau, tailleTableau);
    
    	for (i = 0 ; i < tailleTableau ; i++)
    		printf("voici le tableau dans l'ordre : %ld\n", tableau[i]);  
    
    	system("PAUSE");
    	return 0;
    }
    
    void ordonnerTableau(long tableau[], long tailleTableau)
    
    {
    	long i = 0, max = 0;
    	while (i != tailleTableau)
    	{
    		if (tableau[i] > tableau[i+1])
    		{
    		max = tableau[i];
    		tableau[i] = tableau[i+1];
    		tableau[i+1] = max;
    		}
    		i++;
    	}
    }
    
    • Partager sur Facebook
    • Partager sur Twitter
      24 octobre 2008 à 17:07:51

      tu es bien partis, simplement tu dois faire deux boucles imbriquées sinon tu ne placeras correctement que le premier nombre
      • Partager sur Facebook
      • Partager sur Twitter
        24 octobre 2008 à 17:10:14

        moui, je m'en doute bien... mais en faite ça fait 1 heure que je suis dessus lol, et je n'arrive plus à rien faire, je sais pu quoi faire pour recontinuer...
        • Partager sur Facebook
        • Partager sur Twitter
          24 octobre 2008 à 17:12:28

          Citation : darktidus93

          moui, je m'en doute bien... mais en faite ça fait 1 heure que je suis dessus lol, et je n'arrive plus à rien faire, je sais pu quoi faire pour recontinuer...


          Prends un jeu de carte, mets 5 cartes sur la table et trie les à la main. Quand tu as trouvé une méthode répétitive, tu la codes.

          Un algo ça ne tombe pas du ciel. Il faut agiter ses neurones...

          • Partager sur Facebook
          • Partager sur Twitter
          Music only !
            24 octobre 2008 à 17:14:27

            Bah j'ai bien compris qu'il fallait prendre 2 chiffres qui se suivent, les comparer et les inverser si besoin pour les placer dans l'ordre... Pour moi le bout de code que j'ai le fait, mais je sais très bien aussi qu'il manque un petit truc... je voi pas quoi..
            • Partager sur Facebook
            • Partager sur Twitter
              24 octobre 2008 à 17:15:53

              Citation : darktidus93

              Bah j'ai bien compris qu'il fallait prendre 2 chiffres qui se suivent, les comparer et les inverser si besoin pour les placer dans l'ordre... Pour moi le bout de code que j'ai le fait, mais je sais très bien aussi qu'il manque un petit truc... je voi pas quoi..


              Fait le à la main comme je l'ai indiqué. Tu verras tout de suite ce qu'il manque...
              • Partager sur Facebook
              • Partager sur Twitter
              Music only !
                24 octobre 2008 à 17:18:22

                Mouai, je voi, il ne fait qu'un tour... il faut repeter le programme jusqu'à temps que tout soit dans l'ordre... un ptit indice pour le faire :D lol
                • Partager sur Facebook
                • Partager sur Twitter
                  24 octobre 2008 à 17:19:37

                  Citation : -ed-


                  Prends un jeu de carte, mets 5 cartes sur la table et trie les à la main. Quand tu as trouvé une méthode répétitive, tu la codes.



                  Cela me parait un indice on ne peut mieux :)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    24 octobre 2008 à 17:27:01

                    la deuxieme boucle sera dans la premiere, ou c'est cette nouvelle boucle qui englobera celle que j'ai deja faite?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 octobre 2008 à 17:30:42

                      Fait ce que -ed- te conseil, c'est trés utile pour comprendre. Sinon je t'ai fait le code,à regarder uniquement si tu n'a pas trouvé la solution, de plus mon code est largement améliorable ;) :

                      #include <stdio.h>
                      #include <stdlib.h>
                      
                      int main()
                      {
                      
                          int tab[5] = {0}, i = 0, j = 0;
                          int a = 0, b = 0;
                      
                          /*On laisse l'utilisateur rentrer des valeurs dans le tableau*/
                          for(i = 0; i < 5; i++)
                          {
                          printf("Entrez une valeur pour tab[%d] :\n",i);
                          scanf("%d", &tab[i]);
                          }
                      
                          /* On regarde pour chaque case i du tableau si la valeur est plus petit que la case j et si c'est le cas on interverti les valeurs */
                          for(i = 0; i < 5; i++)
                          {
                              for(j = 0; j < 5; j++)
                              {
                              a = tab[i];
                              b = tab[j];
                                  if(a < b)
                                  {
                                  tab[i] = b;
                                  tab[j] = a;
                                  }
                              }
                          }
                      
                          /* On affiche les valeurs */
                          printf("Voici les valeur dans l'ordre : ");
                          for(i =0; i < 5; i++)
                          {
                          printf("%d ", tab[i]);
                          }
                      
                      return 0;
                      }
                      


                      • Partager sur Facebook
                      • Partager sur Twitter
                        24 octobre 2008 à 17:32:21

                        bah je l'ais fait l'histoire des cartes, bon okai j'avais pas de cartes, j'ai prit les mangas mais c'est la même, ya les numéros lol, mais je ne trouve pas en faite comment répété tant que l'ordre n'est pas croissant...
                        • Partager sur Facebook
                        • Partager sur Twitter
                          24 octobre 2008 à 17:35:05

                          Sans regarder la réponse toute faite, renseigne toi sur le tri à bulle (au passage, il y a beaucoup de topic sur le même sujet avec des réponses bien expliquées :p )
                          • Partager sur Facebook
                          • Partager sur Twitter
                            24 octobre 2008 à 17:37:07

                            oui, j'ai regarder le tri à bulle, mais il m'est en relation trop de notion que je n'est pas encore vue, alors je veux pas le lire, et je suis censer réusir cet exo sans cela lol
                            • Partager sur Facebook
                            • Partager sur Twitter
                              24 octobre 2008 à 17:40:37

                              Je ne vois vraiment pas quelles notions i peut te manquer pour lire ça : http://www.siteduzero.com/tutoriel-3-6 [...] a-bulles.html

                              Ok les exemples sont en C++ mais c'est tout à fait compréhensible ^^
                              • Partager sur Facebook
                              • Partager sur Twitter
                                24 octobre 2008 à 17:41:49

                                Oui, okai je viens de comprendre, il faut qu'il fasse la tailleTableau au carré, donc dans ce cas 25 fois, par l'intermédiaire de deux boucles qui fera 5 passages, qui fera donc 25 comparaisons... en inverssant les nombres au moyen de varaibles. Okai marchii pour tout lol

                                #include <stdio.h>
                                #include <stdlib.h>
                                
                                void ordonnerTableau(long tableau[], long tailleTableau);
                                
                                int main(int argc, char *argv[])
                                
                                {
                                	long tableau[5] = {10, 4, 9, 34, 2}, tailleTableau = 5;
                                    long i = 0;
                                    ordonnerTableau(tableau, tailleTableau);
                                
                                	for (i = 0 ; i < tailleTableau ; i++)
                                		printf("voici le tableau dans l'ordre : %ld\n", tableau[i]);  
                                
                                	system("PAUSE");
                                	return 0;
                                }
                                
                                void ordonnerTableau(long tableau[], long tailleTableau)
                                
                                {
                                	long i = 0, d = 0, a = 0, b = 0;
                                
                                	for (i = 0 ; i < tailleTableau ; i++)
                                	{
                                	for(d = 0; d < tailleTableau ; d++)
                                        {
                                        a = tableau[i];
                                        b = tableau[d];
                                            if(a < b)
                                            {
                                            tableau[i] = b;
                                            tableau[d] = a;
                                            }
                                        }
                                	}
                                }
                                
                                • Partager sur Facebook
                                • Partager sur Twitter

                                exercice 5 des tableaux

                                × 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