Algo permutation

fortunéte -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
J'aimerais avoir une solution explicite sur ce programme qui permet de permutter les contenus d'un nommbre a;b;c
le but de ce programme n'est pas d'afficher ces nombres dans l'ordre croissant mais de recueillir dans nombre a la plus petite valeur et dans nombre c la plus grande valeur
Merci

3 réponses

informaticienne
 
si a est la plus petite et c la plus grande, donc c'est un ordre croissant non?
0
informaticienne
 
si tu veux permuter a et c ce sera:

SI a>b alors ECHANGE (a,b)
SI b>c alors ECHANGE (b,c)
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
@informaticienne
Non ton algorithme ne marche pas. Tu prends par exemple, a=2,b=1,c=5. Et, à la fin, a ne contiendra pas 5.

@fortunéte
Pour que ça soit plus simple, je te conseille l'utilisation d'un tableau.

Tableau d'entiers : tab[3] = {2,1,5};
Entier i;
Entier tmp;
Entier min,max;
min<-max<-tab[0];
Pour i de 1à 3 Faire :
     Si (tab[i]<min) Alors 
           min<-tab[i];
     Fin Si
     Si(tab[i]>max) Alors
          max<-tab[i]; 
     Fin Si
FinPour
a[0]<-min
a[2]<-max


Il peut y avoir pertes de valeurs bien sûr. Mais bon, le but c'était juste de récupérer le min et le max si j'ai bien compris. ;)

PS : Si tu peux pas utiliser de tableaux, retranscris la boucle for, et remplace respectivement a[0],a[1] et a[2] en a, b et c.
Cdlt
0