c语言 :用递归算法求整数m和n的最大公约数。为什么说有错误?

2025-03-03 19:04:50
推荐回答(5个)
回答1:

递归的时候逻辑有点混乱,你看这样写是不是更好
#include
int gcd(int m,int n)
{
int g;
g = m%n;
if(0 == g)
{
return n;
}
else
{
return gcd(n, g);
}
}
int main()
{
int m,n;
scanf("%d,%d",&m,&n);
printf("gcd=%d",gcd(m,n));

return 0;
}

回答2:

#include
int gcd(int m,int n)
{int g;
if(n==0)g=m;
else g=gcd(n,m%n);
return g;
}
void main()
{int m,n;
scanf("%d,%d",&m,&n);//中间的逗号你用的中文字符,所以不能识别
printf("gcd=%d",gcd(m,n));
}

回答3:

#include
int gcd(int m,int n)
{int g;
if(n==0)g=m;
else g=gcd(n,m%n);
return g;
}
void main()
{int m,n;
scanf("%d,%d",&m,&n);//中间是逗号
printf("gcd=%d",gcd(m,n));
}

回答4:

如果没看错scanf("%d,%d",&m,&n);这句话&m前面的那个逗号写成中文的了

回答5:

scanf那段两个%d中间逗号好像不要的吧