Inverser les valeurs de deux variables sans 3eme

[Fermé]
Signaler
Messages postés
9
Date d'inscription
mardi 29 janvier 2013
Statut
Membre
Dernière intervention
30 janvier 2013
-
 RezCray -
Bonjour,

est-il possible d'inverser les valeurs de deux variables a et b sans faire appel à un troisième variable??


4 réponses

salut

tu peux tout simplement faire ceci

int a(10),b(20);


b = b + a;
a = b - a;
b = b - a;
34
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42584 internautes nous ont dit merci ce mois-ci

Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 347
Bonjour,

Non car si tu as a=2, b=5 et que tu affectes b à a, les deux auront la même valeur et tu auras perdu la valeur initiale de a.

Tu es obligé d'utiliser une troisième variable pour faire :
temp = a
a = b
b = temp
pour inverser les valeurs.

Cordialement.
Messages postés
211
Date d'inscription
samedi 12 mars 2011
Statut
Membre
Dernière intervention
5 décembre 2015
352
Cela dépend dans quel langage de programmation. Dans certains langages, il y a une instruction qui le permet... elle s'appelle Swap généralement.
Messages postés
211
Date d'inscription
samedi 12 mars 2011
Statut
Membre
Dernière intervention
5 décembre 2015
352
QBasic par exemple. Mais si c'est pour une épreuve de concours, ce n'est pas du tout le même esprit.
Ils te demandent de trouver une suite d'opérations qui feront qu'à la fin les contenus des deux variables seront échangées. Il faut trouver la bonne séquence. Du genre :
X = x+ y
y = x-y
Et il faut trouver la suite...
Messages postés
9
Date d'inscription
mardi 29 janvier 2013
Statut
Membre
Dernière intervention
30 janvier 2013

soit x , y deux variables
x= x+y
y=x-y
x=(x-y)/2 !!
y =(x+y)/2
c ca!!!
Messages postés
211
Date d'inscription
samedi 12 mars 2011
Statut
Membre
Dernière intervention
5 décembre 2015
352
Super, en plus c'est toi qui a trouvé :-)
Messages postés
9
Date d'inscription
mardi 29 janvier 2013
Statut
Membre
Dernière intervention
30 janvier 2013

:-) mercii bq
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
134
C'est même plus simple que ça et d'ailleurs sans le vouloir tu utilises des variables temporaires puisque tu modifies x et ensuite tu l'utilise avec son contenu initial... ça donnerait plutôt:
x= x+y      
y= x-y         // y est égal à x      
x= x-y         // x est égal à y    


Et juste pour info, au niveau assembleur il existe une instruction permettant d'échanger deux variables sans intermédiaire, nommée Xchg. Donc tous les processeurs intègrent cette fonction mais peu de langage de haut niveau l'implémente...c'est dommage d'ailleurs!
Messages postés
55
Date d'inscription
vendredi 14 décembre 2012
Statut
Membre
Dernière intervention
15 juin 2019
3
bonjour
QBasic 4.5:par exemple
a=2:b=5
print a;" ";b:rem donne a=2:b=5
swap a,b
print a;" ";b:rem donne a=5:b=2