Tom's Guide > Forum > Programmation > Programmation C : Tri par ordre croissant d'un vecteur

Programmation C : Tri par ordre croissant d'un vecteur

Forum Programmation : Programmation C : Tri par ordre croissant d'un vecteur

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour, voilà j'aurais besoin de votre aide pour le programme suivant

Exercices:

Ecrire un programme en langage C qui permet de trier par ordre croissant un vecteur de nombres entiers, la taille de ce vecteur est choisie par l’utilisateur. Les nombres seront soit saisis par l’utilisateur, soit choisis aléatoirement et compris entre 0 et 20.

Les différentes fonctionnalités du programme doivent répondre aux exigences suivantes :

• La saisie se fera par l’appel à une fonction SAISIE_VEC, la même fonction sera utilisée pour l’entrée des nombres manuellement ou aléatoirement

• Le tri sera exécuté par l’appel à la fonction HEAPSORT dont le principe a été vu au laboratoire

• La fonction AFFICHE_VEC sera appelée avant et après l’exécution du tri.



Merci d'avance pour le temps précieux que vous allez consacrer à cet exercice.

Voici mon code source:


Code :
  1. #include <stdio.h>
  2. void main(void)
  3. {
  4. int v[20]; /* tableau donné */
  5. int N;    /* dimension */
  6. int I;    /* rang à partir duquel A est trié */
  7. int J;    /* indice courant */
  8. int AIDE;  /* permutation */
  9. int FIN;  /* dernière permutation. */
  10.        
  11. /* Entrée du tableau */
  12. printf("Dimension du tableau  : " );
  13. scanf("%d", &N );
  14. for (J=0; J<N; J++)
  15.     {
  16.     printf("Element %d : ", J+1);
  17.     scanf("%d", &v[J]);
  18.     }
  19. /* Affichage du tableau */
  20. printf("Tableau donne :\n" );
  21. for (J=0; J<N; J++)
  22.     printf("%d ", v[J]);
  23. printf("\n" );
  24. /* Tri du tableau */
  25. for (I=N-1 ; I>0 ; I=FIN)
  26.     {
  27.       FIN=0;
  28.       for (J=0; J<I; J++)
  29.             if (v[J]>v[J+1])
  30.             {
  31.             FIN=J;
  32.             AIDE=v[J];
  33.             v[J]=v[J+1];
  34.             v[J+1]=AIDE;
  35.             }
  36.     }
  37.   /* résultat */
  38. printf("Tableau trie :\n" );
  39. for (J=0; J<N; J++)
  40.     printf("%d ", v[J]);
  41. printf("\n" );
  42. }


Seul problème c'est que je n'arrive pas à ce que la saisie soit aléatoire et non entrée par l'utilisateur. Donc si quelqu'un pouvait modifier ce code pour que on puisse saisir 20 chiffre aléatoirement et manuellement et que lorsque on saisit manuellement ça soit compris entre 0 et 20

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

rand() et srand()

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Tom's Guide > Forum > Programmation > Programmation C : Tri par ordre croissant d'un vecteur
Aller à :

Il y a 3192 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens