2016-11-03 6 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

그리고 당신은'main' 그림자'int c;'전역에서'fun_div'를 – Danh

+0

'int c; '라고 부르지 않았습니다. 이것은 미래의 슬픔을 일으킬 수 있습니다. – 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 함수에 대한 함수 호출이 추가되었습니다. 컴파일 오류에 대해 물어 날 때

#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; 
} 

당신은 오류 메시지를 두어야 위해

+0

코드는 [Cargo Cult Programmers] (https://en.wikipedia.org/wiki/Cargo_cult_programming)의 결과 만 제공합니다. 변경된 내용과 그 이유를 설명하는 수정 사항을 추천하십시오. – user4581301

1

그것은 컴파일합니다. 그러나 나는 당신의 코드를 정확히 복사하고 컴파일한다.

다른 점은 함수를 호출하지 않기 때문에 추가 된 것입니다.

그리고 a는 B와 0의 배수가 그렇지 않은 경우 (a%b == 0) 1로 평가하기 때문에 보조 노트로, 당신은 단지

int fun_div(int a, int b) 
{ 
    return (a%b == 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; 
}