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

Дроби - C++

Восстановить пароль Регистрация
 
Никита-92
2 / 4 / 0
Регистрация: 10.12.2012
Сообщений: 84
13.03.2013, 21:11     Дроби #1
Borland C ++
Даны натуральные числа X и Y, являющиеся числителем и знаменателем дроби соответственно. Вывести на экран все общие делители и дробь, сокращённую на наибольшую из них.
Например: 6/24 на экране я должен найти НОД 6. Увидеть: 1,2,3,6. Результат: 6/24 = 1/4.
5/7, увидеть 1. Результат 5/7=5/7.
тексты программа:
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
26
 #include <iostream.h>
 #include <conio.h>
 #include<math.h>
 main()
{
int x,y,i,a,b,NOD;  clrscr();
m1: cout<<"Vv. chislo x= "; cin>>x;
    cout<<"Vv.chislo y= "; cin>>y;
    if(x>y)
    {a=y;}
    else
    {a=x;}
    for(i=1; i>0; i++)
    {
        if(x%i==0 && y%i==0)
        cout<<i<<" OD ";
 
        b=i;
          if(NOD==b)
        if(x%b==0 && y%b==0)
    cout<<x<<"/"<<y<<"="<<x/b<<"/"<<y/b;
                 }
    cout<<"\n One more? (1-yes, 0-no)"; cin>>a;
    if(a==1) {goto m1;}
    return 0;
    }
ошибки нету, не вижу смысла где ошибки.
компилятор не читает НОД
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2013, 21:11     Дроби
Посмотрите здесь:

C++ Дроби
С помощью перегрузки операторов складывать, вычитать натуральные дроби C++
C++ Дроби
Цепные дроби C++
C++ Оператор For и дроби
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XobQuit
0 / 0 / 0
Регистрация: 06.03.2013
Сообщений: 10
13.03.2013, 21:31     Дроби #2
А какое значения ты присвоил переменной NOD?;
Никита-92
2 / 4 / 0
Регистрация: 10.12.2012
Сообщений: 84
13.03.2013, 21:47  [ТС]     Дроби #3
Цитата Сообщение от XobQuit Посмотреть сообщение
А какое значения ты присвоил переменной NOD?;
NOD переменная -это наибольший общий делитель
Kins
 Аватар для Kins
59 / 58 / 6
Регистрация: 03.02.2013
Сообщений: 167
13.03.2013, 22:15     Дроби #4
часть тут:
алгоритм наибольшего общего делителя(с)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void lowterms()
    {
        long tnum, tden, temp, gcd;
        tnum=labs(chsl);//используем неотрицательные
        tden=labs(zn);//значения
        if(tden==0){cout<<"Недопустимый знаменатель!"; exit(1);}//проверка знаменателя на 0
        else if(tnum==0){chsl=0; zn=1; return;}//проверка числителя на 0
        //нахождение наибольшего общего делителя
        while(tnum!=0)
        {
            if(tnum<tden){temp=tnum; tnum=tden; tden=temp;}//если числитель больше знаменателя, меняем их местами
            tnum-=tden;//вычитание
        }
        gcd=tden;//делим числитель и знаменатель на
        chsl/=gcd;//полученый наибольший общий делитель
        zn/=gcd;
    }
как вывести
Цитата Сообщение от Никита-92 Посмотреть сообщение
Увидеть: 1,2,3,6.
сам додумаешся.

Добавлено через 23 минуты
Yandex
Объявления
13.03.2013, 22:15     Дроби
Ответ Создать тему
Опции темы

Текущее время: 00:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru