Corection

Résolu
Hellboy67 Messages postés 25 Date d'inscription lundi 19 septembre 2005 Statut Membre Dernière intervention 16 février 2006 - 26 oct. 2005 à 15:29
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 - 26 oct. 2005 à 19:39
donc voila cette source est censé trier le tableau par ordre croissant
mais il ne fait absolument rien
je pense m'etre trompé mais ou ?

#include


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;
bool croissant;
croissant = false;


cout<<"Entrer le nombre de valeur du tableau : ";
cin>>n;

int tableau [n];

remplir (tableau, n);
cout<<endl;

affichage (tableau, n);
cout<<endl;

trie (tableau, croissant, n);

affichage (tableau, n);
cout<<endl;

system("pause");
}


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)
{
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)
{
int j;
for(int j=0; j<n; j++)
{
cout << tableau [j];
cout << " ";
}
cout << endl;
}

6 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
26 oct. 2005 à 17:43
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


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;
}
3
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
26 oct. 2005 à 16:42
void trie (int tableau [], bool& croissant, int n)
{
int a, b, w;
int i = 0;
int m = 0;

while (croissant = false)
{
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;
}
}
}

Tu initialises i a 0, et juste apres, tu testes i et si celui ci est egal a 0, tu sors (oui puis ce que m ne sera jamais incrementé)..

+2(p - n)
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
26 oct. 2005 à 16:44
Ah excuse moi, lecture en diagonal, pas bon :p

+2(p - n)
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
26 oct. 2005 à 17:45
Dans le code que je vient de mettre j'ai mis en commentaire qqs trucs qui m'empêchait de compiler rapidement sous Visual 6.0
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Hellboy67 Messages postés 25 Date d'inscription lundi 19 septembre 2005 Statut Membre Dernière intervention 16 février 2006
26 oct. 2005 à 18:53
merci ymca

et pour repondre a ta question 1)
j'utilise dev c++ quand je suis chez moi et j'ai jamais eu de prob pour compiler
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
26 oct. 2005 à 19:39
Apparement c'est dans la norme ANSI c99 (respectée par dev-cpp mais pas visual 6.0 de 1998).
0
Rejoignez-nous