2016-11-03 3 views
-1
#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; 
} 

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

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

+0

Можете ли вы правильно отстроить код? – Danh

+0

И вы не называли 'fun_div' – Danh

+0

' int c; 'в' main' shadows 'int c;' global. Это может вызвать будущее горе. – user4581301

ответ

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.

+0

Только код дает результат [Программисты Cargo Cult] (https://en.wikipedia.org/wiki/Cargo_cult_programming). Рекомендовать редактировать, чтобы объяснить, что вы изменили и почему. – user4581301

1

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

#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 кратно б и 0 в противном случае.

0

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

0

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

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

Рекомендуемый код приведен ниже, я изменил функцию, поэтому будет проверять, что '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; 
} 
Смежные вопросы