Algo permutation

fortunéte -  
fiddy Messages postés 441 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
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. informaticienne
     
    si a est la plus petite et c la plus grande, donc c'est un ordre croissant non?
    0
  2. 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
  3. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    @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