Je vous partage ma solution de l'exercice 5 du cours "Apprenez à programmer en C" :
void ordonnerTableau(int tableau[], int taille);
int main()
{
int i;
int tableau_1[8] = {10321, 500, 322, 711, 42, 647, 532, 547, 321};
ordonnerTableau(tableau_1, 8);
for(i = 0 ; i < 8 ; i++)
{
printf("%d\n", tableau_1[i]);
}
}
void ordonnerTableau(int tableau[], int taille)
{
float zero = 0;
float min = 1 / zero; // min vaut l'infini
int i, j, k;
for(j = 0 ; j < taille ; j++)
{
for(i = j ; i < taille ; i++)
{
if(tableau[i] < min)
{
min = tableau[i];
k = i; // k permet de sauvegarder la place du tableau qui va être changée
}
}
tableau[k] = tableau[j];
tableau[j] = min;
min = 1 / zero;
}
}
Voila en espérant que cela vous aidera et que vous puissiez me corriger sur certains point pour pouvoir optimiser ce programme. Merci d'avance.
Ce que tu codes ici est le tri par sélection. À chaque étape, on sélectionne le minimum des élémebts restants et on le met en première place (du tableau restant). Voici quelques petits trucs que tu peux améliorer.
Fais une fonction qui te renvoie l’indice du minimum du tableau restant (en gros ce sera ta boucle for interne.
Pas besoin de ta variable zero, tu peux initialiser min avec la première case à tester.
Le dernier élément sera forcément bien placé une fois qu’on a placé tous les autres, donc ta première boucle peut aller de 0 à ˋtaille - 2`.
Utilise int main(void), int main() n’est pas standard.
Déclare tes variables au plus prêt de leur utilisation. Par exemple, déclare k dans ton if (en fait, tu pourrais même faire une fonction qui échange les valeurs de deux variables).
Toujours dans l’idée du point précédent, tu peux écrire for(int i = 0; i < n; i++).
Pour les tailles, tu peux utiliser le type size_t.
@sinAo: code faux: tableau[i+1] n'existe pas lorsque i vaut tailleTab-1
Et arrête de poster des codes sur des sujets qui ne sont pas les tiens, surtout qu'ils ne sont pas terribles. Crée tes propres sujets.
- Edité par edgarjacobs il y a 43 minutes
va te faire ***
Tiens, ça faisait longtemps que je n'avais pas vu de personnage grossier sur le site
- Edité par edgarjacobs 16 mai 2020 à 20:04:02
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Exercice 5 : "ordonnerTableau" / Cours C#
× 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.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent