#include #include #include #include #define NMAX 400 /*Prototypes de fonctions*/ void gen_jd3(int v[], int n); void gen_jd2(int v[], int n); void gen_jd1(int v[], int n); void affresul( int v[], int n ); void tri_bulle(int v[], int n); main() { char rep; int n; /* pour le nombre actif de postes du vecteur */ int v[NMAX]; int ok; char s[80]; int choix =0 ; int ok2; srand (time(NULL)); do { printf( "\n\t\tTRI\n\n" ); do { printf( "Entrer un nombre positif de 1 a %d : ", NMAX - 1 ); ok = scanf( "%d", &n ); //pour recommencer la boucle mettre le scanf dans une variable. Meilleur que le while avec comparaison sur la variable gets(s); }while( ! ok || n < 1 || n >= NMAX ); do { printf ("Choix 1 : sens inverse, Choix 2 : sens normal, Choix 3 : generation aleatoire\n"); ok2 = scanf ("%d",&choix); gets(s); if (choix == 2) gen_jd1( v , n); //appel de la fonction de generation else if (choix == 1) gen_jd2( v , n); else if (choix == 3) gen_jd3(v, n); else ok2 = 0; }while( !ok2 ); printf( "\nAvant le tri" ); affresul( v, n); //appel pour afficher avant le tri tri_bulle(v, n); //appel du triage par bulle (inversement de max) printf( "\nApres le tri" ); affresul( v, n); //appel apres le tri printf( "\nRecommencer (o/n) ?" ); //gets(s); scanf( "%c", &rep ); gets(s); }while( tolower( rep ) != 'n' ); printf("Appuyer sur une touche pour continuer"); getchar(); // getchar(); return; } void gen_jd3(int v[], int n) { int i; for (i=0; iv[j]) //Echange de variable { temp =v[j]; v[j]= v[j-1]; v[j-1]=temp; } } } } /****Affichage****/ void affresul( int v[], int n ) //Fonction d'affichage du tableau avant { int i; printf( "\nle vecteur est: \n" ); for( i =0; i < n; i++ ) printf( "%7d ", v[i] ); }