Drucken, zahlen in der Auswahl von zwei user-Eingabe-Werte mit while-Schleife

Ich das Gefühl, ich könnte hier etwas fehlt, aber etwas sagt mir, dass ich vielleicht nur macht dies schwieriger, dass es sein muss, aber aus dem Buch "C++ Primer, 5. ed.," Ich bin festgefahren auf dieses problem:

Übung 1.11: Schreiben Sie ein Programm, das den Benutzer auffordert, zwei zahlen.
Drucken Sie jede Zahl im angegebenen Bereich von diesen zwei ganze zahlen.

Bis zu diesem Zeitpunkt in dem Buch, die einzige Schleife verwendet wird, ist die while Schleife, und keine bedingte Ausdrücke, wie if, eingeführt worden. Das problem wäre einfach, wenn es nicht für die Tatsache, dass ein Benutzer könnte die Werte in den ganzen zahlen gefragt, die in aufsteigender oder absteigender Reihenfolge, also einfache Subtraktion finden WÜRDE, der Unterschied, aber ohne Prüfung, die Art und Weise zu erhöhen.

Wie konnte ich absolut drucken Sie die Auswahl zwischen den zahlen, die Garantie, nicht einfach das Inkrement in Richtung Unendlichkeit ohne Prüfung der Ergebnisse der Mathematik und/oder ohne einen Vergleich der beiden zahlen? Dies ist, was ich habe; es funktioniert, wenn der erste Wert: v1 ist weniger als oder gleich der zweiten: v2, aber sonst nicht:

#include <iostream>

int main()  
{  
    int v1 = 0, v2 = 0;  
    std::cout << "Enter two integers to find numbers in their range (inclusive): "  
              << endl;  
    std::cin >> v1 >> v2;  
    while (v1 <= v2)  
    {  
        std::cout << v1;  
        ++ v1;  
    }  
    return 0;  
}  

Jede Hilfe wäre sehr geschätzt werden!

  • Es sein sollte....cin>>v1>>v2;
  • Danke, das war dumm.
  • min && max kann auch umgesetzt werden mit avg(x,y)-+0.5*abs(diff(x,y))
  • Gut, zu sehen, wie Sie festgestellt, dass die Differenz ein Teil davon, können Sie immer std::min zu finden, die untere und rechnen damit, dass viele zahlen nach oben.
  • in der Praxis 0.5 wird wahrscheinlich ruinieren die ganze Sache.
  • Ich würde für die Abstimmung entweder >> oder integer-division.
  • ((x+y) - abs(x-y))/2 und ((x+y)+abs(x-y))/2 funktionieren wird

InformationsquelleAutor Louis C. | 2013-01-03
Schreibe einen Kommentar