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

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

26.02.2015, 17:37. Просмотров 716. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти наибольший общий делитель и наименьшее общее кратное (C++):

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

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

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

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

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

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

10
ronaldo
92 / 46 / 63
Регистрация: 16.06.2014
Сообщений: 375
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
Эксперт С++
3016 / 1361 / 415
Регистрация: 19.01.2009
Сообщений: 3,615
Завершенные тесты: 1
26.02.2015, 17:44 #3
Avtarkia, уберите ">>endl" в строках 9 и 10.
0
Z3oM
249 / 70 / 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
Эксперт С++
3016 / 1361 / 415
Регистрация: 19.01.2009
Сообщений: 3,615
Завершенные тесты: 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 / 442 / 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
Привет! Вот еще темы с решениями:

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

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

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

Найти наименьшее общее кратное (НОК) натуральных чисел С++
Вот мой исходник : #include &lt;iostream.h&gt; int NSD (int a, int b) { while...


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

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

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