Что С Программой Не Так.помогите Исправить.

Тема в разделе "C/C++/C#", создана пользователем victory, 9 дек 2014.

  1. victory

    victory New Member

    Регистрация:
    4 ноя 2014
    Сообщения:
    4
    Симпатии:
    0
    #include<iostream>
    #include<math.h>

    using namespace std;

    void NOD(int *n,int *m)
    {
    if(n<m)
    {
    int buf=*n;
    *n=*m;
    *m=buf;
    }
    for(int i=*m;i>=1;i--)
    if(*n%i==0 && *m%i==0)
    {
    cout<<"NOD=";
    }
    return;
    }

    void NOK(int *n,int *m)
    {
    int NOK;
    {
    NOK=(*n)*(*m)/NOD;
    }
    cout<<"NOK=";
    return;
    }

    int main()
    {
    int n,m;
    cin>>n>>m;
    NOD(&n,&m);
    NOK(&n,&m);
    system("pause");
    return 0;
    }
    Выдает ошибки:
    Ошибка 1 error C2297: /: недопустимо, правый оператор имеет тип "void (__cdecl *)(int *,int *)"
    2 IntelliSense: выражение должно иметь арифметический или перечисляемый тип
    Я не могу вникнуть и понять суть ошибки ^_^
    Заранее благодарю.
     
  2. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    Используйте пожалуйста подсветку кода (выделяете текст и жмёте кнопочку С++ ).

    Вы используете в функции NOK не объявленную переменную NOD.
     
  3. victory

    victory New Member

    Регистрация:
    4 ноя 2014
    Сообщения:
    4
    Симпатии:
    0
    Это типа так объявить переменную NOD в моем случае?
    Код (C++):
    void NOK(int *n,int *m)
    {
    int NOK;
    int NOD=NULL;
    {
    NOK=(*n)*(*m)/NOD;
    }
    cout<<"NOK=";
    return;
    }
    Но программа все равно не работает. :lol:
     
  4. Evgeniy

    Evgeniy Member

    Регистрация:
    23 авг 2014
    Сообщения:
    16
    Симпатии:
    0
    NOD = 0. Потом какое то число делится на 0( NOK=(*n)*(*m)/NOD; ). К тому же NOK инициализируется в локально области - значение NOK, при выходе из неё, уничтожится.
     
Загрузка...

Поделиться этой страницей