Source of reverse_digits.cpp


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