2017-10-17 4 views
0

Hallo, ich versuche, ein Übungsproblem zu lösen mit if-Anweisung, die Suche nach dem Minimum zwischen zwei ganzen Zahlen. die Anweisungen sindVergleichen von zwei ganzen Zahlen mit IF-Anweisung

  1. Deklarieren Sie eine Variable, wo Sie das Minimum speichern wollen (sagen ‚min‘)
  2. zwei Variablen deklarieren, fragen Sie einen Benutzer zur Eingabe von zwei ganzen Zahlen und sie in dieser Variablen speichern
  3. davon aus, dass Die erste ganze Zahl ist ein Minimum und speichert sie in einer 'min'-Variable, die in Schritt 1 deklariert wurde.
  4. schreibe eine if-Anweisung, die diese beiden Werte vergleicht und die Variable aus Schritt1 aktualisiert (es wird sonst kein' sonst 'geben) es richtig)

hier ist mein 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; 

die Programme bis zum Ende springen, wenn die erste ganze Zahl größer als der zweite ist, mein Problem ist, dass es nicht die ‚Min‘ nicht aktualisiert. danke im voraus

+0

wenn (a

+0

Sie haben 'mins = a;' geschrieben, aber das ist nicht immer richtig. Sie haben bereits Fälle für die Situationen. Ordnen Sie 'mins' im richtigen Fall den richtigen Wert zu. – nwp

+0

Sie vermissen Inhalte für die 'else' Klausel. –

Antwort

1

Ihre Programmlogik ist falsch. Sie wollen, dass diese statt:

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; 
} 

Nun ist diese noch nicht ganz korrekt ist, weil der Ausgang nicht richtig ist, wenn a und b gleich sind.

Die Korrektur bleibt dem Leser als Übung überlassen.

+0

Ich empfehle, eine neue Zeile oder 'endl' an den endgültigen' cout' anzuhängen, um die Puffer zu spülen. :-) –

+0

@ThomasMatthews Warum? Der Destruktor von 'std :: cout' macht das schon. – nwp

+0

@nwp Vielleicht, weil SamD freut sich zu sehen, Nachricht vor einem unerwarteten Programmabbruch in den Ausgabestrom gespült. – Oliv

0

schreiben if-Anweisung, die diese beiden Werte und aktualisiert die Variable aus Schritt 1 vergleicht (wird es nicht sein 'anderes', wenn Sie es tun richtig)

Ich denke, was Sie brauchen, ist das Folgende.

#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; 
} 

Das Programm Ausgabe wie

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

So unter den präsentierten Code in den Antworten aussehen könnte es nur mein Code ist, dass es richtig funktioniert. :)

0

das ist falsch

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

Es sollte sein.

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

Sie können Short 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; 
} 
Verwandte Themen