我必须创建一个简化分数的函数。如果我可以从函数内部调用另一个函数来轻松找到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
不是函数或函数指针我做错了什么,如何解决?
最佳答案
您正在将mcd
重新声明为int
。那就是问题所在。它掩盖了全局声明的函数mcd()
。现在,当您调用它时,您基本上是在尝试使用函数名称形式的int
变量。编译器抱怨。