// ********************************************************
// Katie Williams
// Programming Lab #1
// September 18th, 2001
// Computes the mean and median of integers 
// entered by the user.  User input is terminated 
// by a negative integer (which is not considered 
// part of the data).  All values input are assumed 
// to be integers within the range of a standard integer.  
// The median is the middle value.  If there is an 
// even number of values entered, compute the median 
// as the average of the two middle-most numbers
// *********************************************************

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
 vector<int> v;
 double median;
 int x, sum = 0;
 cout << "Enter positive integers followed by a -1: " << endl;
  for (;;) {
   cin >> x;
   if (x == -1) break;       // Exit condition
    sum += x;                // Determines the total sum
    v.push_back(x);          // Adds number to vector
  }
// Test is needed to determine if vector it empty or not
  if (v.size() != 0) {
   sort (v.begin(), v.end()); // Sort the integers from min to max
//   cout << "The numbers entered are sorted as follows: " << endl;
//   for (int i = 0; i < v.size(); ++i) 
//  	cout << v[i] << endl;
   if (v.size() % 2 == 0)     // even number of elements
     median = (v[v.size()/2] + v[(v.size()/2) - 1])/2.0;
   else 		      // odd number of elements
     median = v[(v.size()/2)]; 
   cout << "The median is: " << median << endl;
   cout << "The sum of the entered integers is: " << sum << endl;
  }
 else
   cout << "You did not enter any integers.\n" 
        << "There is no median.\n"
        << "The sum is 0 " << endl;
 return 0;
}

