2017-10-17 12 views
0

salut j'essaie de résoudre un problème de pratique en utilisant l'instruction if, en trouvant le minimum entre deux entiers. les instructions sontcomparaison de deux entiers en utilisant l'instruction IF

  1. Déclarez une variable où vous voulez stocker le minimum (dire « min »)
  2. Déclarez deux variables, demandez à un utilisateur d'entrer deux entiers et de les enregistrer dans les variables
  3. partent du principe que le premier nombre entier est un minimum et enregistrez-le dans une variable 'min' déclarée à l'étape 1
  4. écrivez une instruction if qui compare ces deux valeurs et met à jour la variable de l'étape 1 (il n'y aura pas d''else' si vous le faites correctement)

ici est mon code

#include <iostream> 
using namespace std; 

int main() 
{ 
int mins,a,b; 
cout << "Enter two integers: "; 
cin >> a >> b; 
mins = a; 
if (a<b) 
    { 
    cout << "The minimum of the two is " << mins; 
    } 
else 

return 0; 

les programmes sauts à la fin si le premier entier est supérieur au second, mon problème est qu'il ne met pas à jour les « minutes ». merci d'avance

+0

si (a

+0

Vous avez écrit 'mins = a;' mais ce n'est pas toujours correct. Vous avez déjà des cas pour les situations. Affectez juste 'mins' la bonne valeur dans le bon cas. – nwp

+0

Il manque du contenu pour la clause 'else'. –

Répondre

1

Votre logique de programme est erronée. Vous voulez ceci:

int main() 
{ 
    int mins, a, b; 
    cout << "Enter two integers: "; 
    cin >> a >> b; 

    if (a < b) 
    mins = a; 
    else 
    mins = b; 

    cout << "The minimum of the two is " << mins << endl; 

    return 0; 
} 

Maintenant, ce n'est pas encore tout à fait correct, car la sortie est incorrecte si a et b sont égaux.

La correction est laissée à titre d'exercice au lecteur.

+0

Je recommande d'ajouter une nouvelle ligne ou 'endl' au' cout' final, pour vider les tampons. :-) –

+0

@ThomasMatthews Pourquoi? Le destructeur de 'std :: cout' le fait déjà. – nwp

+0

@nwp Peut-être parce que SamD sera heureux de voir le message vidé dans le flux de sortie avant une fin de programme inattendue. – Oliv

0

écrire un if qui compare ces deux valeurs et met à jour la variable de l'étape 1 (il n'y aura pas de « autre » si vous le faites correctement )

Je pense que ce dont vous avez besoin est le suivant.

#include <iostream> 
using namespace std; 

int main() 
{ 
    int min;     // Step 1 
    int a, b;     // Step 2 

    cout << "Enter two integers: "; 

    cin >> a >> b; 

    min = a;     // Step 3 
    if (b < a) min = b;  // Step 4 

    cout << "The minimum of the two is " << min << endl; 

    return 0; 
} 

La sortie du programme pourrait ressembler à

Enter two integers: 3 2 
The minimum of the two is 2 

Ainsi, parmi le code présenté dans les réponses, il est seulement mon code qui fait correctement. :)

0

cela est faux

mins = a; 
if (a<b) 
{ 
cout << "The minimum of the two is " << mins; 
} 
else 

Il devrait être.

if (a < b){ 
    mins = a; 
} 
else{ 
    mins = b; 
} 
cout << "The minimum of the two is " << mins; 
0

Vous pouvez utiliser Shortland if/else:

#include <iostream> 
#include <algorithm> 

int main() { 
    int a, b; 
    std::cout << "Enter a and b: "; 
    std::cin >> a >> b; 
    int min = (a>b) ? b : a; 
    std::cout << "The min element is: " << min; 
}