Classement tableau C:
Résolu
mattheo_25
Messages postés
117
Statut
Membre
-
hhako -
hhako -
bonjour, je suis etudiant debutant en language c: et je dois ranger un tableau de 20 nombres par ordre croissant mais je m arrache les cheveux... si quelqun pouvai me debloquer... merci d avance
Configuration: Windows XP Internet Explorer 7.0
8 réponses
-
Salut,
Il te faut faire un tri à bulle. C'est un exercice classique de première année :)
Piste : tu peux faire ton tri à bulle case par case, c'est à dire tu fais tes comparaisons 2 par 2.
Bonne chance et hésite pas à demander où tu bloques, l'important est de trouver par toi-même :) -
en faisant une condition sur la valeur la plus grande et en inversant alors l'affectation des variables si la condition est respectée.
-
c'est pas en 6 minutes entre ma reponse et la tienne que t'as du beaucoup galere m'enfin...
en algorithmie mon dernier post donnerai
si a < b alors
c=a
a=b
b=c
fin si
(normalement ca doit etre un des premiers programmes qu'on apprend si t'as des cours) -
eh bien essaye deja ce qui vient de t'etre explique et si jamais il y a un probleme n'hesite pas a revenir.
par contre si je peux te conseiller, commences par des tutoriaux, ce sera plus simple et moins prise de tete pour toi...
cintro
ou
https://c.developpez.com/cours/ -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
En gros pour échanger deux valeurs de place, il te faut 1 variable intermédiaire.
Tu as A et B.
Si tu copies A dans B, B sera écrasé n'est-ce pas ?
Alors tu copies d'abord B dans C,
Puis A dans B,
Et enfin C dans A.
Ainsi tu as pu garder tes deux valeurs.
La fonction c est l'opérateur '=', simple non ? -
ben pour un tableau de 20 tu parcours le tableau avec un for et tu analyses a chaque fois seulement 2 valeurs :)
-
D'où le nom de tri à bulle !
-
tu n'a qu'a metre 2 boucle for le traitement ce fait :
for(i=0;i<20;i++){
for(j=i+1;j<20;j++){
if(t[i]>t[j]){
c=t[i];
t[i]=t[j];
t[j]=c;}
}}
bon courage.