Je voudrais alterner les valeurs de 2 variables entières sans utiliser une autre variable auxiliaire.Comment faire ?
Je voudrais alterner les valeurs de 2 variables entières sans utiliser une autre variable auxiliaire.Comment faire ?
Bonjour,
Ce n'est pas difficile, mais avant :
es-tu vraiment à cours de mémoire pour avoir besoin de faire ça ?![]()
Tu veux dire échanger ? Car dans alterner, il y a une notion de répétition et le il te faudra un timer.
Site : http://chgi.developpez.com
Pourquoi faire simple quand on peut faire compliqué ? (Jacques Rouxel)
Bonjour
Mais déjà ça a autant d'affectations que de passer par une 3° variable intermédiaire de tampon et ça a 3 opérations en plus ; et si tu as au départ a == b ça ne marche plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 int a=123; int b=456; a=a^b; b=a^b; a=a^b; printf("a=%d, b=%d\n", a, b) // a=456, b=123
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Je connaissais la version avec ^, ici ils généralisent.
Il y a certainement des intrinsics pour le faire. Ce serait le plus efficace.
Utiliser une lib standard serait mieux. std::swap est disponible en C++, il ne semble rien y avoir en C.
La question initiale reste au mieux vague de toute façon.
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Inutile certes... mais pas valable. L'associativité et la commutativité n'ont rien à voir. Déjà l'associativité ne s'applique que s'il y a plus de 2 opérandes (l'associativité de l'addition c'est dire que a+b+c aura le même résultat quelle que soit l'addition intermédiaire qui sera faite pour additionner le montant intermédiaire au 3° nombre restant).
Et la commutativité (qui dit que permuter les opérandes ne change pas le résultat) est tout aussi inutile dans le cas où a == b. Car si a == b, dès la première opération a=a^b on obtient a=0. Ayant perdu a, on ne peut alors plus le retrouver dans b au final.
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Partager