[C++] Probleme avec un exercice

[C++] Probleme avec un exercice - C++ - Programmation

Marsh Posté le 09-09-2006 à 15:49:19    

Voilà j'ai commencer un apprentissage du C++ à partir du bouquin de Deitel&Deitel " C++ comment programmer", mais ceux qui ont ecrit ce livre n'ont mis que la moitié des corrigé et du coup je n'arrive pas à resoudre un exercice, voici l'énoncé :
 
Ecrivez un programme qui reçoit trois entiers entrer au clavier et affiche la somme, la moyenne, le produit, le plus petit et le plus grand de ces nombres. Le dialogue doit ressembler à ceci :
 

Citation :

Entrez trois entiers differents: 13 27 14  
La somme est 54
La moyenne est 18
Le produit est 4914
Le plus petit entier est 13
Le plus grand entier est 27


 
J'ai donc ecris ce code :
 

Code :
  1. #include <iostream>
  2. using std::cout;
  3. using std::cin;
  4. using std::endl;
  5. int main()
  6. {
  7. int entier1, entier2, entier3, produit, moyenne, somme;
  8. /* Invites pour les trois entiers */
  9. cout << " entrez trois entiers differents : ";
  10. cin >> entier1 >> entier2 >> entier3;
  11. /* Calcul du plus grand */
  12.  if ( ( entier1 > entier2 ) && ( entier2 > entier3 ) )
  13.  cout << " le plus grand est " << entier1 << endl;
  14.   if ( ( entier2 > entier1 ) && ( entier1 > entier3 ) )
  15.   cout << " le plus grand est " << entier2 << endl;
  16.    if ( ( entier3 > entier1 ) && ( entier1 > entier2 ) )
  17.    cout << " le plus grand est " << entier3 << endl;
  18. /* Calcul du plus petit */
  19. if ( ( entier1 < entier2 ) && ( entier2 < entier3 ) )
  20. cout << " le plus petit est " << entier1 << endl;
  21.  if ( ( entier2 < entier1 ) && ( entier1 < entier3 ) )
  22.  cout << " le plus petit est " << entier2 << endl;
  23.   if ( ( entier3 < entier1 ) && ( entier1 < entier2 ) )
  24.   cout << " le plus petit est " << entier3 << endl;
  25. /* Calcul du produit, de la moyenne et de la somme */
  26. produit = entier1 * entier2 * entier3;
  27. moyenne = ( entier1 + entier2 + entier3 ) / 3;
  28. somme = entier1 + entier2 + entier3;
  29. cout << " le produit est " << produit << endl;
  30. cout << " la moyenne est " << moyenne << endl;
  31. cout << " la somme est " << somme << endl;
  32. system ("PAUSE" );
  33. }


 
Maintenant quand j'entre les trois entiers il me donne soit le plus petit sois le plus grand entier mais pas les deux, tandis que le produit la moyenne et la somme s'affichent...
 
Est ce que quelqu'un pourrait me dire ce qui ne va pas? Merci d'avance pour votre aide
:cry:


Message édité par zozor le 09-09-2006 à 15:51:12
Reply

Marsh Posté le 09-09-2006 à 15:49:19   

Reply

Marsh Posté le 09-09-2006 à 16:05:42    

Salut !
 
   Bon bah pour moi le problème viens de ta méthode de comparaison (que je trouve un peu tordue...)
 
par ex :

Code :
  1. if ( ( entier1 > entier2 ) && ( entier2 > entier3 ) )
  2.         cout << " le plus grand est " << entier1 << endl;


 
pourquoi tu fait pas simplement :
 

Code :
  1. if ( ( entier1 > entier2 ) && ( entier1 > entier3 ) )
  2.         cout << " le plus grand est " << entier1 << endl;


 
par ce que là dans ton cas quand tu rentre 13 27 14 et bien il est sencé dire que le plus grand c'est 27, le deuxième entier.
or ton test c'est :
 
 
if ( ( entier2 > entier1 ) && ( entier1 > entier3 ) )
            cout << " le plus grand est " << entier2 << endl;
 
ça entier2 > entier1 c'est vrai, mais par contre entier1 > entier3 ca c'est faux... donc il t'affiche rien...

Reply

Marsh Posté le 09-09-2006 à 16:08:21    

ton truc ça marcherait que si tous les entier étaient rentré de manière ordonnée... mais alors là ça servirait plus a rien de faire tous tes test... ;)

Reply

Marsh Posté le 09-09-2006 à 16:18:05    

Amonchakai a écrit :

ton truc ça marcherait que si tous les entier étaient rentré de manière ordonnée... mais alors là ça servirait plus a rien de faire tous tes test... ;)


T'es schizo? Tu te parles à toi même??? [:totoz]

Reply

Marsh Posté le 09-09-2006 à 16:22:22    

Merci Amonchakai, je vais tester ca de suite!  :bounce:  

Reply

Marsh Posté le 09-09-2006 à 16:24:17    

Moktar1er a écrit :

T'es schizo? Tu te parles à toi même??? [:totoz]


 
 :??:  
 
non, je parlais de ce que zozor avait écrit...
et d'ailleur a tord... j'aurrais mieux fait de me taire  :D

Reply

Marsh Posté le 09-09-2006 à 16:26:32    

Merci Amonchakai c'etait bien la le probleme, mes formule n'etait pas logique  :D  /* zozor tourne de joie sur sa chaise */

Reply

Marsh Posté le 09-09-2006 à 16:26:47    

Amonchakai a écrit :

:??:  
 
non, je parlais de ce que zozor avait écrit...
et d'ailleur a tord... j'aurrais mieux fait de me taire  :D


 
Nan laisse tomber, j'avais pas compris que tu avais fait un double post pour la même réponse :D
(Ca ne me va pas de bosser le samedi moi)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed