Bonjour, voici du code que j'ai rédigé en partie (dans le cadre d'un exercice qui m'est donné à résoudre):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>

using namespace std;

int main()
{
  cout << "Entrez la premiere  valeur : ";
  int a(0);
  cin >> a;
  cout << "Entrez la deuxieme  valeur : ";
  int b(0);
  cin >> b;
  cout << "Entrez la troisieme valeur : ";
  int c(0);
  cin >> c;

  cout << "Les valeurs entrees sont : a = " << a << ", b = " << b
       << " et c = " << c << endl;

  cout << "Permutation: a ==> b, b ==> c, c ==> a" << endl;

  a = c;
  c = b;
  b = a;

  cout << "Les valeurs permutees sont : a = " << a << ", b = " << b
       << " et c = " << c << endl;

  return 0;
}
Le passage souligné et en bleu pose problème, car pour a = 51, b = 876 et c = 235, j'obtiens a = 235, b = 235 et C = 876, or je devrais obtenir a = 235, b = 51 et c = 876

Quelqu'un a-t-il une piste de solution ?

Je sens qu'il y a une question de variable temporaire là-dessous et que l'opération devrait soit s'effectuer en deux fois, soit dans un autre sens que celui que je propose, mais pas moyen de trouver la séquence exacte.

Voici l'énoncé :

Le but de cet exercice est d’échanger la valeur de trois variables.

Le code fourni a pour but de demander à l’utilisateur d’entrer trois nombres, de les afficher et devrait ensuite les permuter ; mais le code pour effectuer la permutation est manquant.

Il vous est demandé de compléter ce programme (entre les commentaires comme indiqué ci-dessus) par le code approprié pour réaliser la permutation suivante : le contenu de a doit aller dans b, celui de b dans c et celui de c dans a.

En cas de doute, regarder l’exemple de déroulement qui suit.

Entrez la premiere valeur : 51
Entrez la deuxieme valeur : 876
Entrez la troisieme valeur : 235
Les valeurs entrees sont : a = 51, b = 876 et c = 235
Permutation: a ==> b, b ==> c, c ==> a
Les valeurs permutees sont : a = 235, b = 51 et c = 876