从C中的另一个函数内部调用函数时出错

时间:2017-12-13 09:17:33

标签: c

我必须创建一个简化分数的函数。如果我可以从函数内部调用另一个函数,轻松找到GCD,那就太棒了。

我的代码是:

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

我在行

上遇到编译错误
    mcd = mcd(a, b);
  

被调用对象类型int不是函数或函数指针

我做错了什么,我该如何解决?

1 个答案:

答案 0 :(得分:2)

您正在将mcd重新声明为int。这就是问题所在。它正在影响全局声明的函数mcd()。现在当你调用它时,你基本上试图以函数名的形式使用int变量。编译器抱怨说。

相关问题