01: #include <iostream> 
02: using namespace std; 
03: /**
04:    Reads data into an array.
05:    @param a the array to fill
06:    @param a_capacity the maximum size of a
07:    @param a_size filled with the size of a after reading
08: */            
09: void read_data(double a[], int a_capacity, int& a_size)
10: {  a_size = 0;
11:    double x;
12:    while (a_size < a_capacity && (cin >> x))
13:    {  a[a_size] = x;
14:       a_size++;
15:    }
16: } 
17: /**
18:    Computes the maximum value in an array
19:    @param a the array
20:    @param a_size the number of values in a
21: */             
22: double maximum(const double a[], int a_size)
23: {  if (a_size == 0) return 0;
24:    double highest = a[0];
25:    for (int i = 1; i < a_size; i++)
26:       if (a[i] > highest)
27:          highest = a[i];
28:    return highest;
29: }
30: 
31: int main()
32: {  const int SALARIES_CAPACITY = 100;
33:    double salaries[SALARIES_CAPACITY];
34:    int salaries_size = 0;
35: 
36:    cout << "Please enter all salary data: ";
37:    read_data(salaries, SALARIES_CAPACITY, salaries_size);
38: 
39:    if (salaries_size == SALARIES_CAPACITY && !cin.fail())
40:       cout << "Sorry--extra data ignored\n";
41: 
42:    double maxsal = maximum(salaries, salaries_size);
43:    cout << "The maximum salary is " << maxsal << "\n";
44:    return 0;
45: }