Réponse acceptée !
1)
int n;
cout<<"Entrer le nombre de valeur du tableau : ";
cin>>n;
int tableau [n];
=> ca compile ca ? la taille du tableau n'est pas connue à la compilation, ca devrait pas passer.
Il faut faire de l'allocation dynamique.
2)
while (croissant = false)
=> tu entrera jamais dans le while vu que tu fais une affectation (dont le résultat sera false) et non pas un test
while (croissant == false) ou while (!croissant)
3)
ta variable m sert à savoir si tu as échanger 2 valeurs au cours de ta boucle et te permet de savoir si le tableau est trié si m vaut 0
=> il faut l'initialiser à 0 avant chaque boucle for
4)
le main doit renvoyer une valeur.
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
void remplir (int*, int);
void trie (int*, bool&, int);
void permute (int&, int&);
void affichage (int* , int);
int main ()
{
int n=12;
bool croissant;
croissant = false;
// cout<<"Entrer le nombre de valeur du tableau : ";
// cin>>n;
int tableau [12];
remplir (tableau, n);
cout<<endl;
affichage (tableau, n);
cout<<endl;
trie (tableau, croissant, n);
affichage (tableau, n);
cout<<endl;
system("pause");
return 0;
}
void remplir (int tableau [], int n)
{
int i;
// srand(time(0));
for (i= 0; i < n; i++)
{
tableau [i] = rand () % 100;
}
}
void trie (int tableau [], bool& croissant, int n)
{
int a, b, w;
int i = 0;
int m = 0;
while (croissant == false)
{
m = 0;
for (i = 0; i<n; i++)
{
if (i!=0)
{
if (tableau [i] < tableau [i-1])
{
w = tableau [i];
tableau [i] = tableau [i-1];
tableau[i-1] = w;
m++;
}
}
}
if (m==0)
{
croissant = true;
}
}
}
void affichage (int tableau [], int n)
{
for(int j=0; j<n; j++)
{
cout << tableau [j];
cout << " ";
}
cout << endl;
}