Ta fram intervallet mellan två tal

Permalänk
Medlem

Ta fram intervallet mellan två tal

Går igenom övning 1.11 i boken C++ Primer. Då är uppgiften följande:

Citat:

Write a program that prompts the user for two integers. Print each number in the range specified by those two integers.

Genom några sökningar på Google så hittade jag information att man kunde inkludera algorithm för att få tillgång till max och min. Jag är nu skeptiskt till att boken vill att jag ska använda mig utav dessa funktioner då man inte har gått igenom så mycket. Det har hittills inte nämnts något för att inkludera andra funktioner osv. Så jag undrar hur man kan göra på annat sätt. Detta är min kod:

#include <iostream> #include <algorithm> int main() { int val = 10, v1, v2; std::cin >> v1 >> v2; int current = std::min(v1, v2); int max = std::max(v1, v2); while (current <= max ) { std::cout << current << std::endl; ++current; } return 0; }

Permalänk
Medlem

Alltså om uppgiften som jag förstår den går ut på att skriva ut alla talen mellan de två talen som användaren matat in så är väl en for loop enklast? For(int i = v1; i < v2; i++){cout << i;}

Sen får du ju dock använda en if sats först och kolla vilket av talen som är minst innan.

Om du då vill minimera koden yttligare kan du göra en funktion som tar emot två värden (max och min).

Visa signatur

Intel Core i7 4790k | ASUS STRIX GTX 980 OC | 1TB SAMSUNG 850 EVO

Permalänk
Medlem
Skrivet av addy1995:

Alltså om uppgiften som jag förstår den går ut på att skriva ut alla talen mellan de två talen som användaren matat in så är väl en for loop enklast? For(int i = v1; i < v2; i++){cout << i;}

Sen får du ju dock använda en if sats först och kolla vilket av talen som är minst innan.

Om du då vill minimera koden yttligare kan du göra en funktion som tar emot två värden (max och min).

Jo, du har förstått uppgiften korrekt, men man skulle i boken använda sig utav en while loop. Nästa del är for loops. Har inte börjat med if-satser ännu så jag tror inte boken vill att jag ska lösa uppgiften på det sättet.

Jag förstår dig att man skulle kanske göra två egna funktioner för att beräkna största och minsta värdet. Frågan är bara hur jag ska lösa det, har inte blivit introducerad så mycket i boken ännu heller. Dock har jag blivit det av YouTube-tutorials tidigare, men boken vill nog att jag ska göra det annorlunda, hmm. Är lite förvirrad.

Permalänk
Medlem

int max; int min; // kolla så att min är mindre än max med en while loop int current = min + 1; while ( current < max ) print current; current++; }

Det ska nog vara den allra simplaste lösningen om du inte får använda andra metoder än.
Om du inte vet vilket av värdena som är max eller min så kan du göra en liten hobby lösning:

int v1; int v2; int currentv1 = v1 + 1; int currentv2 = v2 + 1; while ( currentv1 < v2 ) print currentv1; currentv1++; } while ( currentv2 < v1 ) print currentv2; currentv2++; }

Det är bara en av while looparna som kommer att fungera när personen har angett sina två värden.

Visa signatur

Prylhögen: Nexus 7, iPhone 5, MBPr 2013

Permalänk
Medlem
Skrivet av QRS5:

Det ska nog vara den allra simplaste lösningen om du inte får använda andra metoder än.
Om du inte vet vilket av värdena som är max eller min så kan du göra en liten hobby lösning

Det är bara en av while looparna som kommer att fungera när personen har angett sina två värden.

Mycket bra förslag. Tack så mycket för hjälpen!