Votre message ne comporte pas ou peu de formules de politesse (« Bonjour », « Merci », « Au revoir », etc.). Les règles du site exigent que chaque nouveau message comporte un minimum de politesse. Après tout, les gens qui répondent le font gratuitement, sur leur temps libre. Ils méritent bien un minimum de considération, n'est-ce pas ?
Je vois que tu fais encore de la magie ... pas de printf() ? Je seconde rouIoude, il faut écrire tableau[i+1] et non tableau[i]+1 Mais ce n'est pas tout. Tu n'as qu'une boucle dans ta fonction de tri. Que ce passera-t-il a la fin de cette boucle? Tu n'auras fait qu'une chose. Tu auras placé le plus grand à la dernière position. Le reste sera grossièrement dans le même ordre qu'au début. Je te laisse le coder, mais tu devras trier le sous-tableau du début jusqu'à l'avant dernière position. Tu auras placé le deuxième plus grand à cet endroit. Le truc est de recommencer tant que le sous-tableau aura une longueur supérieure à un.
Le Tout est souvent plus grand que la somme de ses parties.
#include <stdio.h>
#include <stdlib.h>
void ordonnerTableau(int tableau[], int tailleTableau);
int main()
{
int tableau[6] = {23,45,51,22,10,9};
printf("tableau non décroissant :\n\n");
for (int u=0; u<6; u++)
{
printf("ligne %d = %d\n" ,u, tableau[u]);
}
ordonnerTableau(tableau,6);
printf("tableau décroissant :\n\n");
for (int i=0; i<6; i++)
{
printf("ligne %d = %d\n" ,i, tableau[i]);
}
return 0;
}
void ordonnerTableau(int tableau[], int tailleTableau)
{
int relais, relais1;
for (int u=0; u<tailleTableau; u++)
{
for (int i=0; i<tailleTableau; i++)
{
if (tableau[i] < tableau[i+1])
{
relais = tableau[i+1];
relais1 = tableau[i];
tableau[i+1] = relais1; // error: lvalue resquired as left of assignment
tableau[i] = relais;
/* (tableau[i]+1) = relais = tableau[i]
tableau[i] = relais1 = (tableau[i]+1)
soit (tableau[i]+1) = tableau[i]
et tableau[i] = (tableau[i]+1)
donc si la valeur suivant (exemple) tableau[0] (23) < tableau[1] (45)
alors tableau[0] = 45 < tableau[1] = 23
c'est un genre de trieure
*/
}
else
{
tableau[i] = tableau[i];
}
}
}
}
Bonjours / Bonsoir , sincèrement désolé du temps d'attente, je ne vous ai pas répondu de suite car j'ai eu un voyage en train a faire (je vous épargne les détaille) enfin bref, j'ai pris part de vos conseil qui on réussis a m'aider car désormais la console m'affiche cela :
nous remarquons l'apparition d'un "16" (ligne 4) écrit nul part dans le code et la disparitions du 9 qui était a la base présent dans la liste de nombre, on pourrait croire que le 9 a subit une addition mais aucun addition (sauf incrémentation) n'ait présente dans le code ... alors je vous le demande ... que c'est il passé ? un vole ? un échange ? cet ordinateur ne cessera donc jamais de me jouer des tours ?
PS: ce n'ai qu'une supposition mais celons moi, l'erreur pourrait venir de la ligne 30 car si on compare la dernière valeur soit tableau[6] a tableau[6+1]qui reviens a dire tableau[7] et bien on se retrouve avec une ligne qui n'existe pas ... encore une fois merci de votre aide .
Et oui, quand i vaut 5 et que tu fait i+1 ça fait 6 et ton tableau allant des indices 0 à 5 tu te retrouves en dehors du tableau (les indices de tableau vont de 0 à n-1).
PS : tu n'as toujours pas enlevé ce else inutile ligne 47 à 50 ?
PS:j'ai mis le else (meme si il sert un peu a rien je l'admet) car au début j'essayais simplement de bidouiller le code source pour qu'il fonction, mais maintenant quil marche et bien je l'ai supprimé. ce sujet est maintenant résolu je re merci tout les participent qui y ont consacrer du temps pour me mettre sur la bonne voie je vous dit a bientôt :)
exercice 5 formation mathieu nebra
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Le Tout est souvent plus grand que la somme de ses parties.