// Operator overloading to find max in an array
// Date 22:49 29/10/2016
// By Ben a.k.a DreamVB

#include <iostream>

using namespace std;
using std::cout;
using std::endl;

int max(int data[], const int len);
long max(long data[], const int len);
double max(double data[], const int len);

long max(long data[], const int len){
	long m = data[0];
	int i = 1;
	while (i < len){
		if (m < data[i]){
			m = data[i];
		}
		i++;
	}
	return m;
}

int max(int data[], const int len){
	int m = data[0];
	int i = 1;
	while (i < len){
		if (m < data[i]){
			m = data[i];
		}
		i++;
	}
	return m;
}

double max(double data[], const int len){
	double m = data[0];
	int i = 1;
	while (i < len){
		if (m < data[i]){
			m = data[i];
		}
		i++;
	}
	return m;
}

int main(int argc, char *argv[]){
	int small[] {2, 7, 95, 8, 39, 1, 10, 36};
	long medium[] = { 651, 100, 44, 805, 22, 6, 240 };
	double large[] = { 150, 900, 255, 1024, 65534, 2652, 69.852 };

	//Get max of small
	cout << "max value in small is  " << max(small, _countof(small)) << endl;
	cout << "max value in medium is " << max(medium, _countof(medium)) << endl;
	cout << "max value in large is  " << max(large, _countof(large)) << endl;

	system("pause");
	return 0;
}
 