Форум программистов, компьютерный форум CyberForum.ru

Исправить класс сокращения дроби - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ исправьте код http://www.cyberforum.ru/cpp-beginners/thread553440.html
#include <cstdlib> #include <iostream> using namespace std; class rational { private: int a,b; public:
C++ Определить тип соединения сопротивлений - последовательное или параллельное Написать программу, выводящую на экран сопротивление участка электрической цепи, состоящей из двух сопротивлений. Основная программа запрашивает значения сопротивлений и тип соединения (1-последовательное, 2-параллельное). Вычисление и вывод на экран реализовать в виде функции. borland C++ http://www.cyberforum.ru/cpp-beginners/thread553431.html
C++ Определить значение k, при котором сумма |A[1]+A[2]+...A[k]-(A[k+1]+...+A[N])| минимальна
Задан массив А. Определить значение k, при котором сумма |A+A+...A-(A+...+A)| минимальна (т.е. минимален модуль разности сумм элементов в правой и левой части, на которые массив делится этим k).
C++ Как записать двумерный массив в файл?
Здравствуйте. У меня есть такой код: #include <iostream> using namespace std; #include <conio.h> //Заголовочный файл conio.h необходим, чтобы использовать //функцию getch() int main() {
C++ необходим совет опытных программистов c++ http://www.cyberforum.ru/cpp-beginners/thread553412.html
ребят, помогите, пожалуйста, мне, новичку, если не сложно. вобщем есть у меня прога, которую я разбил на модули. В code.h и code.cpp объявлен и определён соответственно класс матриц mtrx. Есть ещё codeanalyze.h и codeanalyze.cpp где у меня объявлены и определены функции для анализа матриц. При запуске компилятор vs2008 выдаёт ошибку. Вот фрагмент кода из codeanalyze.cpp #include "code.h"...
C++ Быстрая сортировка(сортировка Хоара). Отсортировать фрагмент массива Мне нужно отсортировать фрагмент массива, расположенный между первым и последним отрицательным элементом. Немогу понять как устоновить границы 1-го и последнего отрицательного. Подскажите как сделать void Sort (int x, int n, int L, int R) { int i=L,j=R,w; int a=x; do { while (x<a) i++; while (x>a) j--; if (i<=j) подробнее

Показать сообщение отдельно
avovana
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 84
18.05.2016, 10:48     Исправить класс сокращения дроби
Странное сокращение, у меня получилось сократить не до конца.
Нам нужен НАИБОЛЬШИЙ общий делитель, а не наименьший, как у Вас.
У Вас дробь 18/12 сократится на 2 и станет равной 9/6. Т.к. Вы начинаете с 2ки.

Я взял Ваш пример и переделал эту часть с циклом:
C++
1
2
3
int x = abs((a < b) ? a : b);
// x - возможный наибольший общий делитель. Берем его по модулю для использования в цикле
for (int i = x; i >= 2; i--)
Таким образом начнем с верхнего потолка и будем спускаться вниз

Добавлено через 6 минут
Тогда дробь 18/12 сначала попробует сократится на 12.
Не получилось.
Тогда на 11
Не получилось.
...
Тогда на 6
Получилось!
Дробь стала 3/2.
Здесь можно поставить "break" для выхода из цикла, а то будет прогонять дальше, хотя, всё-равно уже более не сократит.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru