Votre question

Programmation C : Tri par ordre croissant d'un vecteur

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
31 Janvier 2009 23:06:36

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:


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

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

Autres pages sur : programmation tri ordre croissant vecteur

a b L Programmation
1 Février 2009 14:06:36

rand() et srand()
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS