C/C++

Помогите с элементарной задачей в С++

Ребята, подскажите:
Как сделать так, чтобы после решения элементарной задачки, результат на экране был дробным числом?
Чтобы результат выражения: 1/4+2/3 был 11/12, а не 0.91...
Это не элементарная задача, тут подразумевается применение специфических библиотек, приёмов вычислений и вывода или математических движков.

Смотрите в сторону boost::rational, как наиболее доступного средства, например:
https://cppsecrets.com/users/1494100103111117100974948485064103109971051084699111109/C00-boostrational.php

Но rational не позволит победить ограничения дискретной математики и ошибки округления.
Виталий Тулинов
Виталий Тулинов
30 155
Лучший ответ
Никита Старжинский Интересная информация. Спасибо!
Именно на С++ надо? А то на Scheme - работает из коробки:
scheme@(guile-user)> (+ 1/4 2/3)
$1 = 11/12
Роман Хода
Роман Хода
84 349
Если вы не хотите использовать stl, то можите просто написать функцию перевода десятичных дробей в обычные.
Почитайте как это делается.
Делается уже не первый раз.

Просто для каждого аргумента отдельно хранится числитель, отдельно — знаменатель (все целочисленное). Результат тоже разделён.
Знаменатель равен произведению знаменателей аргументов.
Числитель есть сумма произведений числителя и знаменателя из разных аргументов.
При желании можно добавить функцию вычисления НОД числителя и знаменателя, это позволяет сократить дробь.
✓ Если результат равен целому числу, то он хранится с единичным знаменателем.
Также можно добавить функцию перестановки знака в числитель (если знаки числителя и знаменателя различаются).

✓ Потоковый ввод iostream позволяет вводить простые дроби ввиде последовательности: число→символ→число, даже без пробелов между элементами; ошибок не возникает.

int numer, denom;
char divid;
std::cin >> numer >> divid >> denom;
 // корректно воспринимает дроби вида 1/4
можешь написать свой класс, содержащий как компоненты целочисленные числитель и знаменатель и переопределить операторы плюс, минус, умножить, делить, а также преобразование в "обычные" double и float. Можешь воспользоваться готовыми библиотеками (сервис ответов не дает вставить ссылку на гитхаб почему-то). Удачи и упорства в изучении cpp
Only User
Only User
12 197
Александр Гризин Этот класс неоднократно публиковали даже в проекте «Ответы».
Ммм не знаю есть ли такое в си++. Но сделайте просто согласно математике, приведите к общему основанию.
;;
; ;
1 481