1: //reverse_digits.cpp
2: //Displays each positive integer input with the digits reversed.
5: #include <iostream>
6: using namespace std;
9: void DescribeProgram();
10: void GetPositiveIntegerFromUser(int& i);
11: int ReversedDigitsOf(int i);
14: int main()
15: {
16: DescribeProgram();
18: int i;
19: GetPositiveIntegerFromUser(i);
20: while (i != 0)
21: {
22: if (i > 0)
23: cout << "The reverse of the integer " << i
24: << " is " << ReversedDigitsOf(i) << ".\n\n";
25: else
26: cout << "Not a positive integer. Try again.\n";
27: GetPositiveIntegerFromUser(i);
28: }
29: cout << endl;
30: }
34: void DescribeProgram()
35: //Pre: The cursor is at the left margin.
36: //Post: The program description has been displayed,
37: // preceded and followed by at least one blank line.
38: {
39: cout << "\nThis program gets a positive integer from the user, then "
40: "computes and outputs\na new integer which is the old one with "
41: "its digits reversed.\n\n";
42: }
46: void GetPositiveIntegerFromUser(/* out */ int& i)
47: //Pre: none
48: //Post: "i" contains a positive integer entered by the user.
49: // The input stream "cin" is empty.
50: {
51: cout << "Enter a positive integer here, or 0 to quit: ";
52: cin >> i; cin.ignore(80, '\n'); cout << endl;
53: }
56: int ReversedDigitsOf(/* in */ int i)
57: //Pre: "i" has been initialized and contains a positive integer.
58: //Post: Function value returned is the integer containing the
59: // digits of "i" in reverse order.
60: {
61: int reverse = 0; //Contains no digits from "i"
62: while (i != 0)
63: {
64: reverse = 10*reverse + i%10; //Add last digit of "i" to "reverse"
65: i = i/10; //Remove last digit from "i"
66: }
67: return reverse; //Contains value of "i" with digits reversed
68: }