[C++]tri par propagation
Résolu
Carnat89
Messages postés
14
Statut
Membre
-
futursoa -
futursoa -
Bonjour,
Voila des heures que j'essai de mettre en place un tri par propagation. Mais je n'y arrive pas...J'ai beau retourner le programme dans tous les sens, rien a faire, je ne comprend pas pourquoi cela ne fonctionne pas...
C'est pourquoi je viens vous demander votre aide. Je pense que l'erreure ne dois pas petre monstrueuse mais suffisement annodine pour m'échaper. Voici le code :
for (i=N;i>2;i--)
{
for (j=1;j<i;j++)
{
if (Tab[j]>Tab[j+1])
{
temp=Tab[i];
Tab[i]=Tab[i+1];
Tab[i+1]=temp;
}
}
}
Est ce que qqn vois une solution ? Merci d'avance.
Voila des heures que j'essai de mettre en place un tri par propagation. Mais je n'y arrive pas...J'ai beau retourner le programme dans tous les sens, rien a faire, je ne comprend pas pourquoi cela ne fonctionne pas...
C'est pourquoi je viens vous demander votre aide. Je pense que l'erreure ne dois pas petre monstrueuse mais suffisement annodine pour m'échaper. Voici le code :
for (i=N;i>2;i--)
{
for (j=1;j<i;j++)
{
if (Tab[j]>Tab[j+1])
{
temp=Tab[i];
Tab[i]=Tab[i+1];
Tab[i+1]=temp;
}
}
}
Est ce que qqn vois une solution ? Merci d'avance.
6 réponses
J'ai fini par trouver la solution...c'est encore moi qui m'obstine a faire des boucle FOR alors qu'ici une boucle DO...WHILE est plus logique...enfin pour les interessés :
do
{
for (j=0;j<N-1;j++)
{
if (Tab[j]>Tab[j+1])
{
temp=Tab[j];
Tab[j]=Tab[j+1];
Tab[j+1]=temp;
i=0;
}
}
i++;
}
while (i<N);
do
{
for (j=0;j<N-1;j++)
{
if (Tab[j]>Tab[j+1])
{
temp=Tab[j];
Tab[j]=Tab[j+1];
Tab[j+1]=temp;
i=0;
}
}
i++;
}
while (i<N);
Je croit que.... je prefere ne pas trop m'avancer et dire de bêtises donc je recommande encore ( désolé pour la pub ) lesiteduzero.com ils ont un bon dossier C++ et ils sont plus qualifiés pour t'aider je pense.
Bonne chance
Bonne chance
Merci beaucoup Fhiter 13, je vais aller voire.
Sinon une petite correstion :
for (i=N;i>2;i--)
{
for (j=1;j<i;j++)
{
if (Tab[j]>Tab[j+1])
{
temp=Tab[j];
Tab[j]=Tab[j+1];
Tab[j+1]=temp;
}
}
}
Sinon une petite correstion :
for (i=N;i>2;i--)
{
for (j=1;j<i;j++)
{
if (Tab[j]>Tab[j+1])
{
temp=Tab[j];
Tab[j]=Tab[j+1];
Tab[j+1]=temp;
}
}
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question