Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tableaux Exo 5

(Faire simple ;)

    16 août 2007 à 2:15:13

    [ANNUL mail précédent: autant pour moi: l'antislash n'apparaît pas dans les aperçus, ok :-° ]

    Bonsoir à tous, on est plusieurs à passer une partie de nos vacances à l'initiation.. M@teo a eu raison de ne pas donner les solutions pour les tableaux: ça nous oblige à venir ici ;) - mais ...
    ... Je ne résiste pas à la tentation de montrer mon travail de la nuit dernière. J'étais tellement content de moi ;)
    Je ne sais pas si c'est très bien codé mais ça marche ;)


    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. /* Exercice 4 :  *** Ordonner les valeurs dans un tableau ***
    4. 15 août 2007. Trouvé le moteur à 3h55 du matin :-)
    5. */
    6. void ordonnerTableau(long tableau[], long tailleTableau);
    7. int main(int argc, char *argv[])
    8. {
    9.     long ttableau[4] = {2, 3, 4, 1};
    10.     ordonnerTableau (ttableau , 4);
    11.     system("PAUSE");  
    12.     return 0;
    13. }
    14. void ordonnerTableau(long tableau[], long tailleTableau)
    15. {
    16.     long i,ii, tableauOrd[tailleTableau];
    17.     //boucle:traite chaque case:
    18.     for (i = 0 ; i < tailleTableau ; i++)
    19.       {
    20.         long somme = 0;
    21.         for (ii = 0 ; ii < tailleTableau ; ii++)
    22.           if (tableau [i]>tableau[ii]) // sous boucle :comparaison
    23.           {                           //avec les autres cases
    24.             somme = (somme +1);
    25.             printf("oui\n");
    26.           }
    27.           else
    28.           {
    29.             printf("non\n");
    30.           }
    31.           // somme indique directement l'indice de sortie:
    32.           printf("somme des oui = %ld\n",somme);  
    33.           //  remplir un autre tableau :
    34.           tableauOrd[somme] = tableau[i];
    35.       }  
    36.       // Bilan:
    37. printf("------------------------- \nBilan:\n\n");        
    38. for (i = 0 ; i < tailleTableau ; i++)
    39. printf ("tableauOrd %ld : %ld\n\n",i,tableauOrd[i]);
    40. }
    41. /* Première boucle: i=0 ; ii de 0 à 3 Deuxième: i=1 ; ii de 0 à 3 , etc..  
    42. test booléen sur la supériorité d'une case par rapport aux autres:
    43. (oui/non) si oui somme = somme +1 > la 'somme' des "1" après la boucle donne
    44. l'ordre dans le tableau, direct.
    45. Merci à M@teo d'avoir insisté sur les booléens dans son tuto ;)
    46. */

    • Partager sur Facebook
    • Partager sur Twitter
      16 août 2007 à 3:23:26

      Euh, sans vouloir peter ta bulle, tu t'es trompé de Forum. :euh:
      • Partager sur Facebook
      • Partager sur Twitter
        16 août 2007 à 9:13:30

        Comme dit au-dessus, ce post serait plus adapter au forum C puisque c'est du C que tu fais.

        sinon, ben tu viens de réinventer le tri-bulle. Tu peux améliorer la chose à la ligne 26 pour faire 2 fois moins de calcul. Mais vu que tu es arrivé jusque là tout seul, je ne vais pas te donner la solution.

        Pour ceux que ça intéresse, le tri-bulle est un des plus mauvais algorithme de tri au niveau performance mais un des plus facile à coder (c'est d'ailleurs pour ça qu'il est souvent proposé en exercice). Pour des tris plus performants, on peut consulter les articles d'algorithmique du SdZ. Mais les méthodes présentées sont plus "compliquées" si on débute. Je mets cela pour information.
        • Partager sur Facebook
        • Partager sur Twitter
        Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.

        Tableaux 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