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.
Voilà mon code source :
#include <stdio.h>
void main(void)
{
int v[20];
/* tableau donné */int N;
/* dimension */int I;
/* rang à partir duquel A est trié */int J;
/* indice courant */int AIDE;
/* permutation */int FIN;
/* dernière permutation. */
/* Entrée du tableau */printf("Dimension du tableau : ");
scanf("%d", &N );
for (J=0; J<N; J++)
{
printf("Element %d : ", J+1);
scanf("%d", &v[J]);
}
/* Affichage du tableau */printf("Tableau donne :\n");
for (J=0; J<N; J++)
printf("%d ", v[J]);
printf("\n");
/* Tri du tableau */for (I=N-1 ; I>0 ; I=FIN)
{
FIN=0;
for (J=0; J<I; J++)
if (v[J]>v[J+1])
{
FIN=J;
AIDE=v[J];
v[J]=v[J+1];
v[J+1]=AIDE;
}
}
/* résultat */printf("Tableau trie :\n");
for (J=0; J<N; J++)
printf("%d ", v[J]);
printf("\n");
}
Est ce que quelqu'un pourrait modifier ce code pour qu'il concorde à l'exercice demandé c'est-à-dire SAISIE_VEC, HEAPSORT et AFFICHE_VEC et également pour que les nombres soit choisis aléatoirement.
Merci d'avance pour votre réponse