home *** CD-ROM | disk | FTP | other *** search
/ C by Discovery (4th Edition) / C_By_Discovery_4th_Edition.tar / C_By_Discovery_4th_Edition / _DISK_ / ch6 / do.c < prev    next >
C/C++ Source or Header  |  2005-06-16  |  1KB  |  50 lines

  1. /*               do.c
  2.  *
  3.  *   Synopsis  - A user is asked to enter an integer. The digits
  4.  *               in the number are displayed in reverse order
  5.  *               and then in the original order.
  6.  *
  7.  *   Objective - Demonstrates the do-while statement and pass by
  8.  *               value for parameters.
  9.  */
  10.  
  11. /* Include Files */
  12. #include <stdio.h>
  13.  
  14. /* Constant Declarations */
  15. #define RADIX 10
  16.  
  17. /* Function Declarations */
  18. void reverse( int number, int radix );
  19. /*   PRECONDITION:  number can be any non-negative decimal integer.
  20.  *                  radix is an integer representing the base.
  21.  *
  22.  *   POSTCONDITION: The digits of number are displayed in reverse 
  23.  *                  order.
  24.  */
  25.  
  26. int main( void )
  27. {
  28.      int number;
  29.  
  30.      printf( "Enter a decimal number: " );
  31.      scanf( "%d", &number );
  32.  
  33.      printf( "\nDigits reversed: " );
  34.      reverse( number, RADIX );
  35.      printf( "Original number : %d\n", number );       /* Note 1 */
  36.      return 0;
  37. }
  38.  
  39. /******************************* reverse() ***********************/
  40.  
  41. void reverse( int number, int radix )
  42. {
  43.      do {                                              /* Note 2 */
  44.           printf( "%d", number % radix );
  45.           number /= radix;
  46.      }
  47.      while ( number != 0 );                            /* Note 2 */
  48.  
  49.      printf( "\n" );
  50. }