Функция мода не работает, почему?

#include<iostream>
using namespace std;
int c;
int fun_div();
int fun_div(int a,int b){
if(a%b==0){
c=1;
   cout<<"Solution Available :\t"<<c;
} else
{
    c=0;
    }   
     return c;
    } 
int main(){
    int c;
    int e,d;
    cout<<"enter two values : \n";
    cin>>e>>d;
    cout<<endl;
}

ошибка при поиске мода из двух чисел и не компиляции программы:

ошибка при поиске мода из двух чисел и не компиляции программы

4 ответа

Это компилирует для меня

#include<iostream>
using namespace std;
int c;
int fun_div();
int fun_div(int a,int b)
{
    if(a%b==0){
        c=1;
        cout<<"Solution Available :\t"<<c;
    } else {
        c=0;
    }   
    return c;
} 
int main(){
    int c;
    int e,d;
    cout<<"enter two values : \n";
    cin>>e>>d;
    fun_div(e,d);
    cout<<endl;
}

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

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

И, как примечание, вы могли бы просто сделать

int fun_div(int a, int b)
{
    return (a%b == 0);
}

так как (a%b == 0) будет оцениваться до 1, если a кратно b и 0 в противном случае.

#include<iostream>
using namespace std;
int c;
int fun_div();

int fun_div(int a,int b)
{
 if(a%b==0){
 c=1;
 cout<<"Solution Available :\t"<<c;
} 
else
 { c=0; }   
return c;
} 

int main()
{
    int e,d;
    cout<<"enter two values : \n";
    cin>>e>>d;
    c=fun_div(e,d);
    cout<<endl;
}

Попробуй это. Я думаю, это то, что вы ожидали. Пожалуйста, объясните свой вопрос, чтобы получить более конкретный ответ.

Я добавил вызов функции к функции fun_div.

Вам, вероятно, следует добавить еще одну проверку, для которой больше. Чем больше проверка, тем больше будет доступного остатка

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

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

Рекомендованный код приведен ниже, я изменил функцию, поэтому он будет только проверять, делится ли "a" на "b" или нет, и возвращает значение main, чтобы отобразить результат на экране.

#include<iostream>
using namespace std;

int fun_div(int a, int b)
{
    return (a%b == 0);
}
int main() {
    int e, d;
    cout << "enter two values : ";
    cin >> e >> d;
    if (fun_div(e, d))
    {
        cout << "Solution Exists.";
    }
    else
    {
        cout << "No Solution Exists.";
    }
    cout << endl;
    return 0;
}
Другие вопросы по тегам