Почему я получаю эту ошибку? ошибка: недопустимые операнды типов ‘int’ и ‘int (int, int)’ в двоичный ‘operator/’

#c

#c

Вопрос:

 int gcd(int a, int b) {
    return b == 0 ? a : gcd(b, a % b);
}

int n1, n2;
    cin >> n1 >> n2;
    int lcm =  n1 * n2; //Line 2
    int rem = lcm / gcd;
    cout << gcd(n1, n2) << endl;
    cout << rem << endl;
  

Я получаю сообщение об ошибке в строке 2: «ошибка: недопустимые операнды типов ‘int’ и ‘int (int, int)’ в двоичный ‘operator /’ «. Я использую текстовый редактор Sublime для компиляции.

Комментарии:

1. Я использую текстовый редактор Sublime для компиляции — Sublime не является компилятором C . g , clang, Visual C — это компиляторы C .

2. Также обратите внимание, что в C уже есть std::gcd . Не зная, как выглядит остальная часть вашего кода, если вы используете этот <bits...> заголовок, который я вижу слишком часто, плюс using namespace std; , ваша программа может не вызывать gcd функцию, которую, по вашему мнению, она будет вызывать.

Ответ №1:

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

Вместо

     int rem = lcm / gcd;
  

кажется, вы хотели вызвать функцию gcd .

     int rem = lcm / gcd(n1, n2);