Exercice langage C: Tests d'égalité

Travail à Faire:

Ecrivez un programme qui demande trois valeurs entières à l'utilisateur, et affiche, le cas échéant, un de ces cinq messages:

  1. Les 3 valeurs sont egales;
  2. Seules les 2 premieres valeurs sont egales;
  3. Seules les 2 dernieres valeurs sont egales;
  4. Seules la premiere et la troisieme valeurs sont egales;
  5. Les 3 valeurs sont differentes.

Comment écrire le programme en n'utilisant que quatre instructions if (et quatre else) et pas d'opérateurs logiques?

 


 

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
32
33
34
35
#include 

using namespace std;

int main(int argc, char **argv) {
  int x, y ,z;

  cout << "Entrez une premiere valeur: ";
  cin >> x;

  cout << "Entrez une deuxieme valeur: ";
  cin >> y;

  cout << "Entrez une troisieme valeur: ";
  cin >> z;

  if (x == y) {
    if (y == z)
      cout << "Les trois valeurs sont egales." << endl;
    else
      cout << "Seules les deux premieres valeurs sont egales." << endl;
  }
  else {
    if (x == z)
      cout << "Seules la premiere et la troisieme valeurs sont egales." << endl;
    else {
      if (y == z)
        cout << "Seules les deux dernieres valeurs sont egales." << endl;
      else
        cout << "Les trois valeurs sont differentes. " << endl;
    }
  }

  return 0;
}