home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / tybc4 / ptr3.cpp < prev    next >
C/C++ Source or Header  |  1993-03-27  |  1KB  |  52 lines

  1. /*
  2.   C++ program that demonstrates the use of pointers with
  3.   one-dimension arrays.  The average value of the array
  4.   is calculated.  This program modifies the previous version
  5.   in the following way:  the realPtr is used to access the
  6.   array without any help from any loop control variable.
  7.   This is accomplished by 'incrementing' the pointer, and
  8.   consequently incrementing its address.  This program
  9.   illustrates pointer arithmetic that alters the pointer's
  10.   address.
  11.  
  12. */
  13.  
  14. #include <iostream.h>
  15.  
  16. const int MAX = 30;
  17.  
  18. main()
  19. {
  20.  
  21.     double x[MAX];
  22.     double *realPtr = x;
  23.     double sum, sumx = 0.0, mean;
  24.     int i, n;
  25.  
  26.     do {
  27.         cout << "Enter number of data points [2 to "
  28.              << MAX << "] : ";
  29.         cin >> n; 
  30.         cout << "\n";
  31.     } while (n < 2 || n > MAX);
  32.  
  33.     // loop variable i is not directly involved in accessing
  34.     //  the elements of array x
  35.     for (i = 0; i < n; i++) {
  36.         cout << "X[" << i << "] : ";
  37.         // increment pointer realPtr after taking its reference
  38.         cin >> *realPtr++;
  39.     }
  40.  
  41.     // restore original address by using pointer arithmetic
  42.     realPtr -= n;
  43.     sum = n;
  44.     // loop variable i serves as a simple counter
  45.     for (i = 0; i < n; i++)
  46.        // increment pointer realPtr after taking a reference
  47.         sumx += *(realPtr++);
  48.     mean = sumx / sum;
  49.     cout << "\nMean = " << mean << "\n\n";
  50.     return 0;
  51.  
  52. }