1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
| // Appel de l'exercice 3_2
void Exercice3_2()
{
// On efface l'écran
system("cls");
// On présente ici l'exercice
printf("------------------------------------------------\n");
printf("Exercice3_2\n");
printf("------------------------------------------------\n");
printf("Tri de n nombres dans l'ordre croissant\n");
printf("------------------------------------------------\n\n");
// Déclaration & Initialisation des variables
int i = 0;
int n = 0;
// Déclaration & Initialisation du tableau
int tableau[1000] = {0};
// DEBUT
// On demande le nombre de fois que sera demandé la saisie
printf("Saisissez la valeur de n : ");
scanf("%d", &n);
printf("\n");
// On décrémente de 1, comme le tableau part de 0
n--;
// On fait une boucle de n
for(i=0; i <=n; i++)
{
// On vide le tampon système
fflush(stdin);
printf("Entrer la valeur du nombre %d : ", i);
/* On sécurise la saisie contre les caractères,
on vérifie si scanf renvoie bien un nombre */
while (scanf("%d", &tableau[i]) <= 0)
{
/* On indique a l'utilisateur que la saisie n'est pas correct
puis on redemande la saisie tant que la condition n'est pas remplie */
if (scanf("%d", &tableau[i]) <= 0)
{
printf("!! Erreur de saisie !!\n");
printf("Entrer la valeur du nombre %d : ", i);
}
// Si ce n'est pas le cas, on vide le buffer, et on redemande avec la boucle while
int c;
while ((c=getchar()) != '\n' && c != EOF);
}
}
printf("\nDans l'ordre croissant :\n");
// On appel la fonction ordonnerTableau
ordonnerTableau2(tableau , 1000);
// On affiche le résultat en parcourant le tableau
for(i=0; i <=n; i++)
{
printf("%d: %d\n", i, tableau[i]);
}
// FIN
}
// Appel la fonction ordonnerTableau
void ordonnerTableau2(int tableau[], int tailleTableau)
{
// Déclaration & Initialisation des variables propres à la fonction
int i, tri, tmp = 0;
// DEBUT
do // On repete tant que le trie n'est pas effectuer
{
/* Variable pour savoir si le tableau est trié
Par défaut on consdière que la tableau est trié */
tri = 0;
// On parcoures le tableau
for (i=0; i<tailleTableau-1; i++)
{
// Si valeur de i > valeur de i+1 alors on permute les valeurs
if (tableau[i] > tableau[i+1])
{
tmp = tableau[i+1];
tableau[i+1] = tableau[i];
tableau[i] = tmp;
// On dit qu'il y a eu un trie
tri = 1;
}
}
// Si il y a eu trillage, tri = 1, on sort de la boucle
} while (tri == 1);
// FIN
}
// FIN EXERCICE 3_2 |
Partager