ошибка: недопустимое преобразование из 'int (*) (int, int)' в 'int' [-fpermissive] - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь создать программу с функциями, которая печатает меньшее число между двумя числами. Но когда я назначаю функцию переменной, отображается эта ошибка:

error: invalid conversion from ‘int (*)(int, int)’ to ‘int’ [-fpermissive]

Код:

#include <iostream>
using namespace std;
int minimum(int num1, int num2){
    int min;
    if(num1 > num2)
        min = num1;
    else
        min = num2;
    return min;
}
int main()
{
    int c{100};
    int d{200};
    int result;
    result = minimum;
    cout<<"The smallest number is " <<result;;
}

И также отображается эта ошибка:

error: no match for ‘operator<<’ (operand types are ‘std::basic_ostream’ and ‘’)

Будет очень полезно, если вы дадите мне решение!

Ответы [ 2 ]

2 голосов
/ 18 июня 2020

Это происходит потому, что вы вызываете функцию без каких-либо параметров, также min никогда не создается, и ваша функция в настоящее время проверяет максимальное число.

#include <iostream>
using namespace std;
int minimum(int num1, int num2) {
    int min;
    if (num1 < num2)
        min = num1;
    else
        min = num2;
    return min;
}
int main()
{
    int c{ 100 };
    int d{ 200 };
    int result = minimum(c, d);
    cout << "The smallest number is " << result;
}
2 голосов
/ 18 июня 2020

Я почти уверен, что вы намеревались использовать

result=minimum(c,d);

Кроме того, внутри определения функции направление> должно быть изменено на <. </p>

...