求大神看看错哪里了,C语言?

2025-04-30 19:43:28
推荐回答(5个)
回答1:

自定义函数逻辑上有点问题,导致没有完全返回;若忽略这一点,那么代码是成功的,可以得出正确结果。不过函数写得啰嗦了点……求最小公倍数常用两种方法,一是求出最大公约数,再求最小公倍数(你用的就是此法);二是直接求。我把两种都写出来供你参考——


int f(int a,int b){//先求最大公约数再求最小公倍数法

int r,t=a*b;//用t记录a与b的积

while(r=a%b)//求a与b的最大公约数

a=b,b=r;

return t/b;//求出a与b的最小公倍数返回

}

///////////////////////////////////////////

int f(int a,int b){//直接求最小公倍数法

int r;

if(a>b)//总是让a<=b,这样速度快一些(不要这个if也可以,逻辑上没有任何问题)

r=a,a=b,b=r;

for(r=b;b%a!=0;b+=r);//直接求a与b的最小公倍数

return b;//求出a与b的最小公倍数返回

}

你写的代码有好多是没有用的,只浪费时间和空间,且把return m;放在else里使函数没有保证全部的返回路径。那个else 本身也是多余的。供参考。你的代码需要用“同时压下Ctrl和z键"来结束。

回答2:

具体图片在哪里呢?看不到!

回答3:

你要将问题说清楚点具体点,才能帮到你。

回答4:

看样子都不像真心来求教的。代码复制成这样子。你认为有人会想看吗

回答5:

没有看到你的问题在哪里。请详细叙述你的问题。