2017-12-13 8 views
-5

分数を簡単にする関数を作成する必要があります。 GCDを簡単に見つけるために、関数の中から別の関数を呼び出すことができれば幸いです。C内の別の関数の中から関数を呼び出すときのエラー

私のコードは次のとおりです。

int mcd(int n1, int n2){ 
    int mcd = 1; 
    for(int i = 2; i <= n1 && i <= n2; ++i){ 
     if(n1 % i == 0 && n2 % i == 0){ 
      mcd = i; 
     } 
    } 
    return mcd; 
} 

int reduir(fraccio* sol){ 
    int a, b, mcd; 
    a = sol->num; 
    b = sol->den; 
    mcd = mcd(a, b); 
    sol->num = sol->num/mcd; 
    sol->den = sol->den/mcd; 

    if (sol->num < 0) { 
     sol->signe = '-'; 
     sol->num = sol->num * -1; 
    } 
    return 0; 
} 

私は、オブジェクト型int呼び出さライン上のコンパイルエラー

mcd = mcd(a, b); 

は、関数または関数ポインタではありません取得

何私は間違っていました、どうすれば修正できますか?

+2

ここにコードを投稿してください。 –

+2

まあ、__text__として。 –

+0

リンクや掲示の代わりにここにコードを書くことができれば最高です。 – coderredoc

答えて

2

mcdintと再宣言しています。それが問題の場所です。これは、グローバルに宣言された関数mcd()をシャドーイングしています。これを呼び出すと、基本的に関数名の形で変数intを使用しようとしています。コンパイラはそれに不満を持ちます。

関連する問題