Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Avtarkia
1 / 1 / 1
Регистрация: 09.12.2014
Сообщений: 105
1

Найти наибольший общий делитель и наименьшее общее кратное

26.02.2015, 17:37. Просмотров 738. Ответов 10
Метки нет (Все метки)

Вообщем нужно найти Наибольший общий делитель и наименьшее общее кратное.
При запуске пишет " 6.2005\main.cpp||In function 'void pr(int, int, int)':|
6.2005\main.cpp|9|error: no match for 'operator>>'
Как я понял,я к переменной неправильно обращаюсь?Подскажите как исправить
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
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <stdlib.h>
#include <cmath>
using namespace std;
void pr(int a,int b,int nod)
{
    cout<<"Vvedite a\n";
    cout<<"Vvedite b\n";
    cin>>a>>endl;
    cin>>b>>endl;
    while(a!=b)
    {
        if(a>b)
        {
            a=a-b;
        }
        else b=b-a;
        nod=a;
            cout<<"Naibolshiy obshiy delitel "<<nod<<endl;
    }
    cout<<endl;
}
 
void pr2(int a,int b,int nod,int nok)
{
      nok=a*b/nod;
        cout<<"Naibolshee obshee kratnoe "<<nok<<endl;
    cout<<endl;
}
int main()
{
    int a,b,nok,nod;
    pr(a,b,nod);
    pr2(a,b,nod,nok);
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2015, 17:37
Ответы с готовыми решениями:

Дружественная функция: найти наибольший общий делитель и наименьшее общее кратное
Вообщем нужно найти Наибольший общий делитель и наименьшее общее кратное.И надо...

Найти наибольший общий делитель и наименьшее общее кратное двух чисел
Даны два натуральных числа m и n. Найти их наибольший общий делитель и...

Найти наибольший общий делитель n и m (наименьшее общее кратное n и m) используя алгоритм Евклида.
10.Даны натуральные числа n,m. Найти наибольший общий делитель n и m...

Найти наибольший общий делитель и наименьшее общее кратное двух введенных натуральных чисел
Напишите пожалуйста код =)

Найти наибольший общий делитель и наименьшее общее кратное двух введенных натуральных чисел.
Найти наибольший общий делитель и наименьшее общее кратное двух введенных...

10
ronaldo
92 / 46 / 63
Регистрация: 16.06.2014
Сообщений: 376
26.02.2015, 17:43 2
7-10 строки замени на
C++
1
2
3
4
cout<<"Vvedite a"<<endl;
    cin>>a;
    cout<<"Vvedite b"<<endl;
    cin>>b;
0
schdub
Эксперт С++
3038 / 1380 / 421
Регистрация: 19.01.2009
Сообщений: 3,685
Завершенные тесты: 1
26.02.2015, 17:44 3
Avtarkia, уберите ">>endl" в строках 9 и 10.
0
Z3oM
250 / 71 / 18
Регистрация: 10.04.2010
Сообщений: 532
Записей в блоге: 3
26.02.2015, 17:52 4
Спасибо Вам за совет!
0
Avtarkia
1 / 1 / 1
Регистрация: 09.12.2014
Сообщений: 105
26.02.2015, 18:00  [ТС] 5
Теперь такая фигня.
Если ввести 80 и 120 то выводит два cout:
80 и 40.Тоесть первый тупо выводит "а", а второй правильно.И нок не выводит.Как иссправить?

Добавлено через 1 минуту
Решил проблему с выводом двух cout.ПОчему не вычисляет нок?

Добавлено через 3 минуты
Как я понимаю, вот тут с делением что-то не то.
C++
1
nok=a*b/nod;
Операнд "/" правильно использую?
0
Avtarkia
1 / 1 / 1
Регистрация: 09.12.2014
Сообщений: 105
26.02.2015, 18:05  [ТС] 6
Нужно найти наибольший общий делитель и наименьшее общее кратное.
Проблема в том,что нод находит правильно, а вот нок выводит "0".В чем дело?
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <stdlib.h>
#include <cmath>
using namespace std;
void pr(int a,int b,int nod)
{
    cout<<"Vvedite a\n";
    cout<<"Vvedite b\n";
    cin>>a;
    cin>>b;
    while(a!=b)
    {
        if(a>b)
        {
            a=a-b;
 
        }
        else
        {
            b=b-a;
        }
        nod=a;
 
    }
     cout<<"Naibolshiy obshiy delitel "<<nod<<endl;
    cout<<endl;
 
}
 
void pr2(int a,int b,int nod,int nok)
{
      nok=(a*b)/nod;
        cout<<"Naibolshee obshee kratnoe "<<nok;
    cout<<endl;
}
int main()
{
    int a,b,nok,nod;
    pr(a,b,nod);
    pr2(a,b,nod,nok);
    system("pause");
    return 0;
}
0
schdub
Эксперт С++
3038 / 1380 / 421
Регистрация: 19.01.2009
Сообщений: 3,685
Завершенные тесты: 1
26.02.2015, 18:11 7
Avtarkia, у вас a, b и nod не инициализируются.

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
27
#include <iostream>
#include <stdlib.h>
#include <cmath>
 
int NOD(int a, int b) {
    if (b == 0) return fabs(a);
    return NOD(b, a % b);
}
 
int NOK(int a,int b,int nod) {
    return ((a*b)/nod);
}
 
int main() {
    int a, b;
    std::cout<<"Vvedite a" << std::endl; std::cin>>a;
    std::cout<<"Vvedite b" << std::endl; std::cin>>b;
 
    int nod = NOD(a,b);
    std::cout<<"Naibolshiy obshiy delitel " << nod << std::endl;
 
    int nok = NOK(a, b, nod);
    std::cout<<"Naibolshee obshee kratnoe " << nok << std::endl;
 
    system("pause");
    return 0;
}
0
MakeEasy
41 / 41 / 26
Регистрация: 24.02.2015
Сообщений: 151
26.02.2015, 18:35 8
pr принимает все параметры по значению. Передавай по ссылке и будет работать.
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
#include <stdlib.h>
#include <cmath>
using namespace std;
void pr(int &c,int &d,int &nod)
{
    cout<<"Vvedite a\n";
    cout<<"Vvedite b\n";
    cin>>c;
    cin>>d;
    int a = c;
    int b = d;
    while(a!=b)
    {
        if(a>b)
        {
            a=a-b;
 
        }
        else
        {
            b=b-a;
        }
        nod=a;
 
    }
     cout<<"Naibolshiy obshiy delitel "<<nod<<endl;
    cout<<endl;
 
}
 
void pr2(int a,int b,int nod,int nok)
{
      nok=(a*b)/nod;
        cout<<"Naibolshee obshee kratnoe "<<nok;
    cout<<endl;
}
int main()
{
    int a,b,nok,nod;
    pr(a,b,nod);
    std::cout <<a << " " << b<< std::endl;
    pr2(a,b,nod,nok);
    system("pause");
    return 0;
}
0
Avtarkia
1 / 1 / 1
Регистрация: 09.12.2014
Сообщений: 105
26.02.2015, 18:36  [ТС] 9
Короче,сам разобрался.Вот.
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
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <stdlib.h>
#include <cmath>
using namespace std;
void pr(int a,int b,int nod,int nok)
{
    int f,g;
    cout<<"Vvedite a\n";
    cin>>a;
    cout<<"Vvedite b\n";
    cin>>b;
    f=a;
    g=b;
 
 
    while(a!=b)
    {
        if(a>b)
        {
            a=a-b;
            nod=a;
 
        }
        else
        {
            b=b-a;
            nod=b;
        }
 
    }
    nok=(f*g)/nod;
     cout<<"Naibolshiy obshiy delitel "<<nod<<endl;
     cout<<"Naibolshee obshee kratnoe "<<nok<<endl;
    cout<<endl;
 
}
0
Avtarkia
1 / 1 / 1
Регистрация: 09.12.2014
Сообщений: 105
26.02.2015, 18:37  [ТС] 10
Как починить?

Добавлено через 36 секунд
Вот так исправил,все равно не вычисляет.
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
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdlib.h>
#include <cmath>
using namespace std;
void pr(int a,int b,int nod,int nok)
{
    cout<<"Vvedite a\n";
    cin>>a;
    cout<<"Vvedite b\n";
    cin>>b;
    while(a!=b)
    {
        if(a>b)
        {
            a=a-b;
 
        }
        else
        {
            b=b-a;
        }
        nod=a;
 
    }
    nok=(a*b)/nod;
     cout<<"Naibolshiy obshiy delitel "<<nod<<endl;
     cout<<"Naibolshee obshee kratnoe "<<nok<<endl;
    cout<<endl;
 
}
 
 
int main()
{
    int a,b,nok,nod;
    pr(a,b,nod,nok);
    system("pause");
    return 0;
}
Добавлено через 21 минуту
Короче,сам разобрался.Вот.
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
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <stdlib.h>
#include <cmath>
using namespace std;
void pr(int a,int b,int nod,int nok)
{
    int f,g;
    cout<<"Vvedite a\n";
    cin>>a;
    cout<<"Vvedite b\n";
    cin>>b;
    f=a;
    g=b;
 
 
    while(a!=b)
    {
        if(a>b)
        {
            a=a-b;
            nod=a;
 
        }
        else
        {
            b=b-a;
            nod=b;
        }
 
    }
    nok=(f*g)/nod;
     cout<<"Naibolshiy obshiy delitel "<<nod<<endl;
     cout<<"Naibolshee obshee kratnoe "<<nok<<endl;
    cout<<endl;
 
}
0
Dimension
Dimension
573 / 443 / 221
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
26.02.2015, 20:42 11
вы ведь передаете значения вот сюда
C++
1
pr(a,b,nod,nok);
,которых по сути нет ,вы их не ввели в main,а ввели и в функции pr ,и это значения за пределы pr выйти не могут ,если их конечно глобально не объявить
0
26.02.2015, 20:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.02.2015, 20:42

Найти наименьшее общее кратное трех чисел
заданы 3 числа найти их наименьшее общее кратное Теги выделения кода...

Найти наименьшее общее кратное заданных N чисел
Ребят, привет. Выручайте, чем можете, нужно составить код для нахождения...

Найти наименьшее общее кратное используя рекурсию
Дан массив.Найти наименьшее общее кратное используя рекурсию


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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