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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 59, средняя оценка - 4.86
KirArg
0 / 0 / 0
Регистрация: 18.12.2010
Сообщений: 9
#1

Сложение обыкновенных дробей - C++

22.01.2011, 20:18. Просмотров 8875. Ответов 6
Метки нет (Все метки)

Две дроби a/b и c/d можно сложить следующим образом:
a/b + c/d = (a*d + b* c)/(b*d)
Например, 1/4 + 2/3 = (1*3 + 4*2)/4*3 = 11/12
Напишите программу, запрашивающую у пользователя значения двух дробей, а затем выводящую результат, также записанный в форме дроби.
Взаимодействие программы с пользователем может выглядеть, например, следующим образом:

Введите первую дробь: 1/2
Введите вторую дробь: 2/5
Сумма равна 9/10

Вы можете использовать тот факт, что операция извлечения >> может считывать более одного значения за раз.

Сам пытался написать,но вышло криво и ответ был в десятичной дроби...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2011, 20:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сложение обыкновенных дробей (C++):

Калькулятор для обыкновенных дробей - C++
Не компилируется( #include <iostream> #include <math.h> using namespace std; class Calc

Вывод чисел в виде обыкновенных дробей - C++
Как осуществить вывод чисел в виде обыкновенных дробей в С++?

Найти сумму и разность двух обыкновенных дробей - C++
Помогите пожалуйста,нужно написать консольную программу на с++,находящую сумму и разность двух обыкновенных дробей. Посмотрел похожие...

Найти сумму обыкновенных дробей с выделенной целой частью - C++
Написать класс, для нахождения суммы обыкновенных дробей с выделенной целой частью. перегрузка суммы ввода и вывода. конструктор и...

Выполнить перегрузку функции вычитания для обыкновенных и десятичных дробей - C++
Написать перегруженные функции и основную программу, которая их вызывает. а) для вычитания десятичных дробей; б) для вычитания...

ООП. нахождение суммы обыкновенных дробей с выделенной целой частью - C++
Неправильно высчитывает сумму. что не так? помогите. само задание такое. написать класс, реализующий понятия обыкновенных дробей с...

6
sandye51
программист С++
684 / 586 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
22.01.2011, 20:20 #2
Как написать класс «несократимая дробь» (т.е. дроби 2/4, 4/8 и т.п. есть дробь 1/2)?
0
KirArg
0 / 0 / 0
Регистрация: 18.12.2010
Сообщений: 9
22.01.2011, 20:27  [ТС] #3
sandye51 Мне нужно всего лишь написать простое консольное приложение для сложения обыкновенных дробей по той формуле что я написал, а в той теме что вы дали рассматриваются классы, которые я ещё не изучал..
0
Мигрень
20 / 20 / 2
Регистрация: 09.11.2010
Сообщений: 102
22.01.2011, 21:07 #4
не знаю точно как нормально ввести такую дробь (с слешем), но можно выкрутиться и так
C++
1
2
3
4
5
6
7
8
9
10
int a,b,c,d,ch,zn;
char l;
cout << "Введите первую дробь: ";
cin >> a >> l >> b;
cout << "Введите вторую дробь: ";
cin >> c >> l >> d;
ch = (a*d) + (b* c);
zn = b*d;
 
cout << "\n\nСумма равна " << ch << "/" << zn;
0
no0ker
101 / 88 / 4
Регистрация: 17.12.2010
Сообщений: 416
22.01.2011, 21:19 #5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
int _d(int a, int b){
    int tmp;
    tmp=a*b;
    while (a!=0 && b!=0){
        (a>b) ? a=a%b : b=b%a;
    }
    return tmp/(a+b);
}
 
int main(){
    
    int a_t, a_d, b_t, b_d, c_t, c_d;
    
    printf("enter 1 drob \n");
    scanf("%d/%d", &a_t, &a_d);
    
    printf("enter 2 drob \n");
    scanf("%d/%d", &b_t, &b_d);
    
    c_d = _d(a_d, b_d);
    
    c_t = ( a_t*(c_d / a_d) + b_t*(c_d / b_d));
    
    printf("result: \n%d/%d",c_t,c_d);
}
1
KirArg
0 / 0 / 0
Регистрация: 18.12.2010
Сообщений: 9
22.01.2011, 21:58  [ТС] #6
Спасибо, оба варианта работают.Мигрень Char l я так понял,позволяет ставить знак / ?
0
Мигрень
20 / 20 / 2
Регистрация: 09.11.2010
Сообщений: 102
22.01.2011, 22:01 #7
Да

Точнее просто в переменную типа char, в l записывает знак /
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2011, 22:01
Привет! Вот еще темы с ответами:

Выполнить перегрузку функции вычитания для обыкновенных и десятичных дробей - C++
Написать перегруженные функции и основную программу, которая их вызывает. а) для деления десятичных дробей; б) для деления обыкновенных...

Сложение дробей - C++
Как сложить две дроби? #include&lt;iostream&gt; using namespace std; class Drob { private: float chislet, znamenat;

Сложение дробей. - C++
Я хочу сложить массив дробей. Числитель у меня один массив а знаменательль другой массив. Если бы у меня небыло дробей можно было бы...

сложение дробей - C++
Даны две дроби A/B и C/D (А, В, С, D — натуральные числа). Составить функцию сложения этих дробей. Ответ должен быть несократимой дробью.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
22.01.2011, 22:01
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru