C/C++

Помогите пожалуйста с C++

Вот мой код : https://pastebin.com/MZrkSUb2

Задание : С клавиатуры вам вводятся три массива: целых чисел, символов и дробей. Для каждого массива выберите максимальный элемент, содержащийся в нем и выведите его на экран.

Формат входных данных
Во входных данных даны три массива: сначала массив чисел, потом массив символов, и, наконец массив дробей. Длины каждого из массивов не превышают 1000 элементов.

Элементы в массивах выводятся через пробел. Все числа не превышают по модулю 109, знаменатели дробей не равны 0, а символы имеют ASCII-коды в диапазоне от 32 до 126.

Формат выходных данных
На экран выведите целое число, символ и дробь — максимумы в каждом массиве.
входные данные
5
3 9 1 5 11
4
w o r d
5
1/2 5/4 10/10 7/4 11/13

вblходные данные

11
w
7/4

Сама функция находится на 66 строке, как мне сделать так чтобы выводилась максимальная дробь, я не понимаю!
С числами и символами проблем нету. Может есть специальная функция? Или самому придется ее писать?
#include <algorithm>
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
struct Fraction {
pair<int, int> frac;
Fraction() : frac({ 0, 1 }) {}
Fraction operator()(int x) {
Fraction f;
f.frac.first = frac.first * x;
f.frac.second = frac.second * x;
return f;
}
pair<int, int> split(const string& str, char delim = '/') {
stringstream ss(str);
string token;
pair<int, int> box;
getline(ss, token, delim);
box.first = stoi(token);
getline(ss, token);
box.second = stoi(token);
return box;
}
friend istream& operator>>(istream& inp, Fraction& f) {
string line;
inp >> line;
f.frac = f.split(line);
return inp;
}
friend ostream& operator<<(ostream& out, const Fraction& f) {
return out << f.frac.first << '/' << f.frac.second;
}
friend bool operator<(const Fraction& a, const Fraction& b) {
return double(a.frac.first) / a.frac.second < double(b.frac.first) / b.frac.second;
}
};
unsigned length() {
unsigned value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
auto la = length();
auto a = new int[la];
for (auto i = 0U; i < la; ++i) cin >> a[i];
auto lb = length();
auto b = new char[lb];
for (auto i = 0U; i < lb; ++i) cin >> b[i];
auto lc = length();
auto c = new Fraction[lc];
for (auto i = 0U; i < lc; ++i) cin >> c[i];
auto ma = *max_element(a, a + la);
delete[] a;
auto mb = *max_element(b, b + lb);
delete[] b;
auto mc = *max_element(c, c + lc);
delete[] c;
cout << '\n' << ma << '\n' << mb << '\n' << mc << '\n';
system("pause > nul");
}
Ильнур Идрисов
Ильнур Идрисов
85 806
Лучший ответ
Ерлан Бакей А можете здесь в этом коде выделить для меня только про дробную часть, пожалуйста! Про числа и символы я сам сделал, а что нужно для дробных?