Bonjour à toutes et à tous .
@Bousk . Merci .
Je suis perplexe :
while (n1 != '|' && n2 != '|')
Je décompose :
tant que n1 et n2 sont différents de la barre droite on continue ... Mais il n'y a rien en mémoire .
Oui cela fonctionne . Mais ?
J'ai retouché et amélioré mon code .
Cela fonctionne "mieux avec des char" mais ce sont int demandés ?.
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 36 37 38 39 40
|
#include "std_lib_facilities.h"
#include <limits>
int main()
{
char a = 0;
char b = 0;
while (true) // retourne vrais donc on continue
{
cout << '\n' << " Entrez deux nombres !" << '\n';
cin >> a >> b;
if (a == '|' || b == '|') { // si les entrées correspondent à deux barres , fin du programme
cout << " Erreur ! Arrêt du programme !" << '\n';
break;
}
if (a >= '0' || b >= '0' && a <= '9' || b <= '9') // si les entrées sont comprises entre 0 et 9 on continue
{
cout << '\n' << " Vous avez choisi : " << a << " et " << b << " Merci !" << '\n' ;
cin.clear(); // on défini l'état du flux , on efface les erreurs et on continue
cin.ignore(numeric_limits<streamsize>::max() , '\n'); // on vide le buffer ( " ignore() permet d'extraire les cractères du buffer ")
}
if (a > b) {
cout << '\n' << "Le plus grand nombre est : " << a << " Le plus petit est : " << b << '\n';}
else if (a < b){
cout << '\n' << "Le plus petit nombre est : " << b << " Le plus grand est : " << a << '\n';}
else if (a == b){
cout << '\n' << "Les deux nombres sont égaux ! " << a << " et " << b << '\n';}
}
return 0;
} |
Partager