#include<iostream>
#include<cstdio>
using namespace std;
template<class T>
T MaxElement(T a[], int size)
{
T temMax = a[0];
for (int i = 1; i < size; ++i){
if (temMax < a[i]){
temMax = a[i];
}
}
return temMax;
}
class CFraction{
private:
int numerator;
int denominator;
public:
CFraction(int n, int m) :numerator(n), denominator(m){}
bool operator <(const CFraction & s);
friend ostream & operator <<(ostream & os, const CFraction& s);
};
bool CFraction::operator<(const CFraction& s)
{
return (this->numerator)*(s.denominator) < (this->denominator)*(s.numerator);
}
ostream & operator << (ostream & os, const CFraction& s)
{
os << s.numerator << "/" << s.denominator << endl;
return os;
}
int main()
{
int a[5] = { 1, 5, 2, 3, 4 };
CFraction f[4] = { CFraction(8, 6), CFraction(8, 4), CFraction(3, 2), CFraction(5, 6) };
cout << MaxElement(a, 5) << endl;
cout << MaxElement(f, 4) << endl;
system("pause");
return 0;
}